通过DbContext添加对象会复制相关对象

本文关键字:对象 复制 添加 通过 DbContext | 更新日期: 2023-09-27 18:00:44

我有一个对象,我会称它为Thing,它与另一个对象有多对一的关系,我会叫它Person。如何使用DbContext添加Thing而不复制关联的Person。Thing有一个名为PersonID的Person外键。

public class Thing
{
  public long ID { get; set; }
  public long PersonID { get; set; }
}
public class Person
{
  public long ID { get; set; }
}

我试过这个:

context.Things.Add(newThing);
context.SaveChanges();

我也尝试过这样做:

Person person = new Person() { ID = newThing.PersonID };
context.Persons.Attach(person);
context.Things.Add(newThing);
context.SaveChanges();

通过DbContext添加对象会复制相关对象

不确定我是否正确理解了这个问题,但请尝试:

context.Entry(Person).State = System.Data.EntityState.Unchanged;

此消息会告诉EF实体未更改,因此不会尝试保存它。