मुझे वही समस्या थी जहां हम प्रकार पर एक पहचान चाहते हैं, लेकिन एक मूल्य प्रदान नहीं करना चाहते हैं। कुंजी एक SqlMetaData
. का उपयोग करना है उस कॉलम के लिए कंस्ट्रक्टर जो सेट करता है useServerDefault
करने के लिए true
:
एडो नेट में पहचान कॉलम के साथ उपयोगकर्ता परिभाषित तालिका प्रकार का उपयोग करना टिम वैन वासेनहोव द्वारा
एसक्यूएल :
CREATE TYPE [Star].[example] AS TABLE(
[Ordinal] [int] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](200) NOT NULL,
)
सी# :
var sqlMetaData = new[]
{
new SqlMetaData("Ordinal", SqlDbType.Int, true, false, SortOrder.Unspecified, -1),
new SqlMetaData("Name", SqlDbType.NVarChar, 200)
};
sqlRecords = new HashSet<SqlDataRecord>(usersToInclude.Select(user =>
{
var record = new SqlDataRecord(sqlMetaData);
record.SetString(1, user.Name);
return record;
}));
new SqlMetaData("IdentityField", SqlDbType.Int, true, false, SortOrder.Unspecified, -1)