在EntityFramework 6中是否可以添加/删除相关实体而无需实际获取相关实体?
我在尝试:
var a = new EntityA()
a.B = new EntityB { Id = 2 };
db.Entry(a).State = EntityState.Added;
db.SaveChanges();
具有Id的实体已存在于DB中。我的尝试失败,出现以下异常:
附加' EntityB'类型的实体失败 因为同一类型的另一个实体已经具有相同的主要实体 核心价值。使用'附加'方法或设置 一个实体的状态为“未变”'或者'修改'如果有任何实体 图表具有冲突的键值。这可能是因为一些 实体是新的,尚未收到数据库生成的密钥 值。在这种情况下,请使用'添加'方法或“添加”#39;实体国家 跟踪图形,然后将非新实体的状态设置为 '不变'或者'修改'酌情。
答案 0 :(得分:2)
要解决您的确切错误,您需要将新db.Entry( b ).State
实体的B
设置为Unchanged
(您的代码会生成Added
)