我正在开发具有分离实体的 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
到摘要类。
我想做的是:
- 检查是否有新的
Cause
和最近保存的一样Cause
,如果是,则更改保存的Cause
中标志的值 - 插入新的
Cause
进入dbContext
有一个标志IsCurrent
在Cause
类(class);只有一条记录设置为 true
;它需要设置为 false
如果新的 Cause
与这个不同。
我欢迎采用基于代码优先的方式来执行此操作。
最佳答案
像这样的东西应该可以工作:
using (...)
{
Cause c = db.Causes.FirstOrDefault(ce => ce.IsCurrent == true);
if (cause.Title != c.Title)
{
c.IsCurrent = false;
cause.IsCurrent = true;
}
//
// other codes ...
//
}
关于c# - 使用分离实体在 Entity Framework 5 中使用代码优先进行更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18108530/