3

我正在开发一个带有分离实体的 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();

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

我想做的是:

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

班上有一面旗帜IsCurrentCause只有一条记录设置为true; false如果新的与此不同,则需要将其设置为Cause

我会欢迎一种基于代码优先的方式来做到这一点。

4

1 回答 1

0

像这样的东西应该工作:

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

    //
    // other codes ...
    //
}
于 2013-08-08T07:53:48.813 回答