Tôi đã gặp vấn đề tương tự khi chúng tôi muốn một danh tính trên loại, nhưng không muốn cung cấp một giá trị. Điều quan trọng là sử dụng SqlMetaData
hàm tạo cho cột đó đặt useServerDefault
thành true
:
Theo bài viết này trên sử dụng loại bảng do người dùng xác định với cột xác định trong ado net bởi Tim Van Wassenhove
SQL :
CREATE TYPE [Star].[example] AS TABLE(
[Ordinal] [int] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](200) NOT NULL,
)
C # :
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)