加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 使用byte作为主键数据类型

发布时间:2020-12-15 08:05:14 所属栏目:百科 来源:网络整理
导读:我正在使用实体框架代码优先.我有一个表不会超过100行,我想使用数据类型字节(SQL Server中的tinyint)作为主键. 这是我到目前为止: [Key]public byte Id { get; set; } 问题是当Entity Framework创建数据库时,它没有设置允许行在插入时自动递增的标识规范属
我正在使用实体框架代码优先.我有一个表不会超过100行,我想使用数据类型字节(SQL Server中的tinyint)作为主键.

这是我到目前为止:

[Key]
public byte Id { get; set; }

问题是当Entity Framework创建数据库时,它没有设置允许行在插入时自动递增的标识规范属性.

如果我将数据类型更改为Int16(SQL Server中的smallint),一切都很完美.

有没有办法告诉实体框架设置自动增量属性,还是一个字节不能用作实体框架代码优先的主键?

解决方法

支持字节类型作为键和标识列.将字节主键标记为标识不是默认设置.但您可以覆盖此默认值:
[Key,DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public byte Id { get; set; }

明确地设置Identity选项对于int,long和short(以及可能更多类型?)不是必需的,但它是一个字节(在SQL Server中为tinyint).我通过测试得出结论,但无法在任何地方找到正式记录.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读