我有一个批处理,我需要在现有实体之间添加新关系,实体有大数据,我无法获取实体并添加它们,我试过这个:
for .........
Class Class = new Class() { ClassID = myClassId };
context.AddToClasses(Class);
Student std = new Student() { Id = myStdId };
context.AddToStudents(std);
context.ObjectStateManager.ChangeObjectState(Class, System.Data.EntityState.Unchanged);
context.ObjectStateManager.ChangeObjectState(std, System.Data.EntityState.Unchanged);
Class.ClassStudents.Add(std);
.............
第一个电话会成功,但第二个电话会给我这个例外:
AcceptChanges 无法继续,因为对象的键值与 ObjectStateManager 中的另一个对象冲突。在调用 AcceptChanges 之前确保键值是唯一的。
试过:
for .........
Class Class = new Class() { ClassID = myClassId };
context.Attach(Class);
Student std = new Student() { Id = myStdId };
context.Attach(std);
context.ObjectStateManager.ChangeObjectState(Class, System.Data.EntityState.Unchanged);
context.ObjectStateManager.ChangeObjectState(std, System.Data.EntityState.Unchanged);
Class.ClassStudents.Add(std);
.............
例外:
具有空 EntityKey 值的对象不能附加到对象上下文。
我怎样才能做到这一点?