好吧,当我尝试插入新值时,我有一个奇怪的异常。请参阅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查询”图像文件)。
是错误还是我错过了什么?
答案 0 :(得分:3)
从外观上看,您需要将Worker2主键属性设置为非数据库生成。
类似的东西:
<Key, DatabaseGenerated(DatabaseGeneratedOption.None)>
Public Property TableNumber As Integer
答案 1 :(得分:0)
我认为主键未设置为身份。