使用实体框架添加记录时违反链接记录的PRIMARY KEY约束

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用实体框架添加记录时违反链接记录的PRIMARY KEY约束相关的知识,希望对你有一定的参考价值。

我有一张名为farmers的桌子。每个农民都有一个强制性的国家。

当我使用antity框架将新农民添加到数据库时,我在country table上遇到了违规。看起来实体框架想要将国家/地区添加到国家/地区表中,但我只想在我的农民表中使用guid:

违反PRIMARY KEY约束'PK_Country'。无法在对象'dbo.Country'中插入重复键。该语句已终止。

有人可以告诉我我做错了什么吗?这里是插入的代码:

        newFarmer.Guid = Guid.NewGuid();
        ents.Farmer.AddObject(newFarmer);
        ents.SaveChanges();
        return newFarmer;

我甚至检查了这个国家的情况,并且没有改变。

答案

一种可能的解决方案是实体框架不理解您的实体主键也是标识,并且应该自动递增。我在使用EF 4.1 with database first的应用程序中遇到了同样的问题。要解决这个问题,我不得不::

  • 确保我的实体主键具有名称“ID”(以避免将装饰器[Key]放在我的Model类之上。
  • 确保数据库系统的属性选项“Identity”(在我的情况下为SQL Server)设置为“Yes”。

然后,我的EF4.1能够插入和更新我的实体。

希望这可以帮助!

以上是关于使用实体框架添加记录时违反链接记录的PRIMARY KEY约束的主要内容,如果未能解决你的问题,请参考以下文章

数据导入时违反 PRIMARY KEY 约束错误

违反 PRIMARY KEY 约束

违反 PRIMARY KEY 约束。无法插入重复键

违反约束时是不是可以获取行的值?

(转)sql 违反了 PRIMARY KEY 约束,不能在对象 中插入重复键

违反 PRIMARY KEY 约束“PK_EMPLOYEE”。无法在对象中插入重复键