【发布时间】:2013-08-07 16:18:50
【问题描述】:
我正在开发一个带有分离实体的 n 层应用程序 (Visual Studio 2010)。我没有包含类定义,因为它们似乎与逻辑无关。
下面的代码 sn-p 可以正常工作,并且嵌入在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
Cause 类中有一个标志 IsCurrent;只有一条记录设置为true;如果新的Cause 与此不同,则需要将其设置为false。
我欢迎使用基于代码优先的方式来执行此操作。
【问题讨论】:
-
当考虑到数据库表的多个用户时,如何定义最近保存的
Cause?是该用户最近一次保存,最近一次保存在这个工作单元的范围内,最近一次保存在这个正在运行的应用程序或服务实例的范围内,还是最近一次从任何地方保存到数据库中?跨度> -
我已更新问题以反映这一点。
-
Cause类的自然键是什么?换句话说,给定两个或多个Causes,哪些属性定义了它们是相同的还是不同的。
标签: c# entity-framework code-first