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

时间:2011-06-03 09:32:11

标签: entity-framework entity-framework-4 constraints 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;

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

1 个答案:

答案 0 :(得分:1)

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

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

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

希望这有帮助!