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

问题描述 投票:0回答:1

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

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

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

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

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

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

entity-framework entity-framework-4 constraints primary-key
1个回答
1
投票

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

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

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

希望这可以帮助!

© www.soinside.com 2019 - 2024. All rights reserved.