Entity framework 主键的值被识别为NULL(首先是EF6代码)

Entity framework 主键的值被识别为NULL(首先是EF6代码),entity-framework,Entity Framework,嗯,当我尝试插入新值时,有一个非常奇怪的异常。请参阅以了解进一步的调查。 因此,我使用: SQL Server 2012 VS 2012更新2 EF6 Alpha 3代码优先 问题是我试图将新值插入名为dbo.Worker2(请参阅“Worker2 table”图像文件)的简单表中,该表由两列组成:TableNumber和Name。TableNumber列是整型数据类型的主键(请参阅“主键列属性”图像文件)。我已经安装了最新的EF6 alpha3并尝试插入新值(请参阅“VB.NET代码”图像

嗯,当我尝试插入新值时,有一个非常奇怪的异常。请参阅以了解进一步的调查。 因此,我使用:

  • SQL Server 2012

  • VS 2012更新2

  • EF6 Alpha 3代码优先

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

然后,我决定用SQLServerProfiler查看T-SQLQueryEF发送给SQLServer的内容,并对EF没有发送TableNumber感到惊讶(请参阅“ProfilerQueries”图像文件)


是bug还是我遗漏了什么?

我认为主键未设置为标识。

我认为主键未设置为标识。

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

比如:

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

公共属性TableNumber为整数

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

比如:

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

公共属性TableNumber为整数
从“主键列属性”图像中可以看到,它不是标识。从“主键列属性”图像中可以看到,它不是identity.Property(x=>x.TableNumber)。HasColumnName(“TableNumber”).IsRequired().HasDatabaseGenerateOption(DatabaseGenerateOption.None);使用fluent APIProperty(x=>x.TableNumber).HasColumnName(“TableNumber”).IsRequired().hasDatabaseGenerateOption(databaseGenerateOption.None);使用fluentapi