即使找到键,实体框架也会插入导航属性行

Jey*_*Jey 3 c# entity-framework ef-database-first

我正在使用实体框架。我有一个表 Person,它在表 PersonCategory 上有一个外键。Person Id 是一个自动递增的身份 (1,1)。每次我更新人员实体时,实体框架都会为 PersonCategory 表插入一行,即使找到类别也是如此。

我正在使用数据库优先设计。

class Person
{
  public string Name {get;set}
  public PersonCategory {get;set;}
}

class PersonCategory
{
  public int ID {get;set}
  public string Name{get;set;}
}
Run Code Online (Sandbox Code Playgroud)

Era*_*nga 7

首先,您需要将现有的内容附加PersonCategory到上下文中;

var myPersonCat = new PersonCategory { ID = 1, Name = "Foo" };
var myPerson = new Person { Name = "Bar", PersonCategory = myPersonCat };

context.PersonCategories.Attach(myPersonCat);    
context.People.Add(myPerson);
Run Code Online (Sandbox Code Playgroud)