使用分离的实体首先在Entity Framework 5中使用代码进行更新

时间:2013-08-07 16:18:51

标签: c# entity-framework code-first

我正在开发一个带有分离实体的n层应用程序(Visual Studio 2010)。我没有包含类定义,因为它们似乎与逻辑无关。

以下代码段正常运行,并嵌入using dbContext

dbContext.Entry(Case).State = Case.CaseID == 0 ? EntityState.Added : EntityState.Modified;
dbContext.Entry(Case.Woman).State = Case.Woman.CaseID == 0 ? EntityState.Added : EntityState.Modified;
dbContext.Entry(Case.Summary).State = Case.Summary.CaseID == 0 ? EntityState.Added : EntityState.Modified;

dbContext.SaveChanges();

我在Summary类中添加了一个集合ICollection<Cause> Causes

我想做的是:

  • 检查新Cause是否与最近保存的Cause相同,如果是,请更改已保存的Cause
  • 将新Cause插入dbContext

IsCurrent类中有一个标记Cause;只有一条记录设置为true;如果新false与此Cause不同,则需要将其设置为{{1}}。

我欢迎基于代码优先的方法。

1 个答案:

答案 0 :(得分:0)

这样的事情应该有效:

using (...)
{
    Cause c = db.Causes.FirstOrDefault(ce => ce.IsCurrent == true);
    if (cause.Title != c.Title)
    {
        c.IsCurrent = false;
        cause.IsCurrent = true;        
    }

    //
    // other codes ...
    //
}