PRIMARY KEY的值被识别为NULL(EF6代码优先)

时间:2013-05-27 05:09:40

标签: entity-framework

好吧,当我尝试插入新值时,我有一个奇怪的异常。请参阅attached files进一步调查。 所以,我用:

  • SQL Server 2012

  • VS 2012 Update 2

  • EF6 Alpha 3 Code First

问题是我正在尝试将新值插入名为dbo.Worker2的简单表中(请参阅“Worker2表”图像文件),该表由2列组成:TableNumber和Name。 TableNumber列是整数数据类型的主键(请参阅“主键列属性”图像文件)。我安装了最新的EF6 alpha3并尝试插入新值(请参阅“VB.NET代码”图像文件)。但是,抛出异常:“无法将值NULL插入列'TableNumber',表Bonus.dbo.Worker2';列不允许空值.INSERT失败。” (参见“VS异常”图像文件)。

然后我决定看看哪些T-SQL查询EF使用SQL Server Profiler发送到SQL Server,并且对EF没有发送TableNumber感到惊讶(参见“Profiler查询”图像文件)。

是错误还是我错过了什么?

2 个答案:

答案 0 :(得分:3)

从外观上看,您需要将Worker2主键属性设置为非数据库生成。

类似的东西:

<Key, DatabaseGenerated(DatabaseGeneratedOption.None)>
Public Property TableNumber As Integer

答案 1 :(得分:0)

我认为主键未设置为身份。