我正在开发一个带有分离实体的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}}。
我欢迎基于代码优先的方法。
答案 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 ...
//
}