这是相当自我explainatory。 我有一个包含一个类另一个让我们称他们为主题和课堂
public class Subject
{
public Classroom Class {get; set;}
}
我使用的是无状态的外墙,至极意味着我的DbContext正在复苏的对象后立即设置,并创建存储新的。 难道不应该知道课堂是不是一个新的对象,因为它的ID已经在DB? 使用调试器,我可以追踪到之前,我调用SaveChanges方法和Classroom.id是一个我在数据库上的点。 有什么问题? EF增加了一个新的课堂与确切属性与前一个,而是一个新的PK。 我在做什么错在这里?
这是用于一般的CRUD操作的代码(他们在我的DbContext)两个更新和删除工作就好了:
public void Update(DbSet MySet, object Obj)
{
MySet.Attach(Obj);
var Entry = this.Entry(Obj);
Entry.State = EntityState.Modified;
this.SaveChanges();
}
public void Insert(DbSet MySet, object Obj)
{
MySet.Add(Obj);
this.SaveChanges();
}
public void Delete(DbSet MySet, object Obj)
{
MySet.Attach(Obj);
var Entry = this.Entry(Obj);
Entry.State = EntityState.Deleted;
this.SaveChanges();
}