0

好吧,当我尝试插入新值时,我遇到了相当奇怪的异常。请参阅附件以进行进一步调查。所以,我使用:

  • SQL Server 2012

  • VS 2012 更新 2

  • EF6 Alpha 3 代码优先

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

然后我决定查看 EF 使用 SQL Server Profiler 发送到 SQL Server 的 T-SQL 查询,并且惊讶地发现 EF 没有发送 TableNumber(请参阅“Profiler Queries”图像文件)。

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

4

2 回答 2

3

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

就像是:

<Key, DatabaseGenerated(DatabaseGeneratedOption.None)>
Public Property TableNumber As Integer
于 2013-12-16T13:58:47.897 回答
0

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

于 2013-05-27T05:32:54.260 回答