临时EntityKey未生成

时间:2013-06-24 11:28:49

标签: .net entity-framework entitykey

我正在创建一个在数据库中不存在的新EntityObject(SQLite)。我填充对象的属性并将其连接到父对象。我没有填充主键属性,因为据我所知,EF应该自动为我生成一个临时的EntityKey。 然后我使用AddObject方法将新创建的EntityObject添加到上下文中,然后调用SaveChanges。

我收到UpdateException:由于约束违规而中止 PRIMARY KEY必须是唯一的。 我看到主键属性始终设置为0,尽管它应该是数据库中的下一个可用值,对吧? 我在数据库中检查了主键字段是否自动增量。

如何让EF给我一个临时的EntityKey?

1 个答案:

答案 0 :(得分:0)

EF不会为您创建临时密钥。您需要自己生成临时密钥。

您可以做什么:在装有[NotMapped]属性的模型中添加属性。在对象创建中,应使用值初始化此值。 Guids可以很好地解决问题。您只需使用Guid.NewGuid()为您生成临时密钥。

[NotMapped]可确保您的字段不会保留在数据库中。