首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未生成临时EntityKey

未生成临时EntityKey
EN

Stack Overflow用户
提问于 2013-06-24 19:28:49
回答 1查看 176关注 0票数 0

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

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

怎样才能让EF给我一个临时的EntityKey?

EN

回答 1

Stack Overflow用户

发布于 2014-02-21 13:08:22

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

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

[NotMapped]可确保字段不会持久保存在数据库中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17274388

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档