c# - 使用分离实体在 Entity Framework 5 中使用代码优先进行更新

标签 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();

我添加了一个集合ICollection<Cause> Causes到摘要类。

我想做的是:

  • 检查是否有新的 Cause和最近保存的一样Cause ,如果是,则更改保存的 Cause 中标志的值
  • 插入新的 Cause进入dbContext

有一个标志IsCurrentCause类(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/

相关文章:

c# - 使用 msmq 和 wcf

c# - 保存父实体时,新的子实体将不会保存

c# - 使用 MVC、WCF、EF 的应用程序架构

c# - 如何从 EF 中的 Seed() 访问 sql 文件?

c# - Excels 的等效 C# 函数 Norm.S.Inv 函数

c# - 如何使用SOLID原则构建第三方库抽象层

c# - 为什么此代码段将答案显示为 6?

c# - 在 ExecuteStoreQuery 错误消息 : "Value does not fall within the expected range." 中使用 OracleParameter

entity-framework - 映射私有(private)属性时的问题

c# - 我应该为每个域在 DDD 中有一个单独的数据库吗?EF MVC codefirst