我有一个父实体已存在的场景,我必须在更新父实体期间添加它的子节点,例如:
var db = new TestContext();
var book = new Book {
BookId = 1, // Already exists in the db from previous save operation
Author = new Author {
FirstName = "Charles",
LastName = "Dickens"
}
};
db.Attach(book);
我在attach方法中遇到以下错误:
实体类型的实例' Book'无法跟踪,因为另一个 已经跟踪了{' Id'}具有相同键值的实例。 附加现有实体时,请确保只有一个实体实例 附加给定键值。考虑使用 ' DbContextOptionsBuilder.EnableSensitiveDataLogging'看到了 冲突的关键值。
答案 0 :(得分:0)
只需var book = db.Books.Find(1)
,其中Books是DbSet<Book>
的名称,而不是创建新对象。
这将为您提供存储在数据库中的相同实体。