使用byte作为主键数据类型
我正在使用entity framework代码优先。 我有一个表不会超过100行,我想使用数据类型byte
(SQL Server中的tinyint
)作为主键。
这是我到目前为止:
[Key] public byte Id { get; set; }
问题是当Entity Framework创建数据库时,它没有设置允许行在插入时自动递增的标识规范属性。
如果我将数据类型更改为Int16
(SQL Server中的smallint
),一切都很完美。
有没有办法告诉entity framework设置自动增量属性,还是一个字节不能用作entity framework代码优先的主键?
支持byte
类型作为键和标识列。 将byte
主键标记为标识不是默认设置。 但您可以覆盖此默认值:
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)] public byte Id { get; set; }
明确地设置Identity
选项对于int
, long
和short
(以及可能更多类型?)不是必需的,但它是一个byte
(在SQL Server中为tinyint
)。 我通过测试得出结论,但无法在任何地方找到正式记录。