关于.NET EntityFrameWork int型非自增主键 插入时 NULL 错误

最近在使用Entity FrameWork 5.0,其中有一张业务表涉及到 int类型非自增主键ID,在插入数据时报主键ID不能插入NULL值,但实际上在插入时,我是对ID进行赋值了的,为什么会这样呢?

查阅了官方文档,有这么一句话:为了用户更好的体验,在使用Entity FrameWork时,我们对int类型的主键做了处理,默认其为自增长类型(Identity)。

大概意思是这样,这貌似时4.0以后的特性,但是这并不妨碍我们使用Entity FrameWork 5.0,微软贴心地给了处理非自增int型主键的方法,就是在主键ID上声明标识不处理当前 int型主键的特性:

[DatabaseGenerated(DatabaseGeneratedOption.None)]

例如:声明不对int型主键F_Id处理

[DatabaseGenerated(DatabaseGeneratedOption.None)]

public int F_Id { get; set; }

public int? F_UserId { get; set; }

public string F_UserPassword { get; set; }

What is DatabaseGeneratedOption?

DatabaseGeneratedOption是枚举变量,有以下三种:

Identity:自增长

None:不处理

Computed:表示这一列是计算列

 

猜你喜欢

转载自blog.csdn.net/RicardoMTan/article/details/86585333