在EF4中无法在不首先获取实体的情况下更新实体

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在EF4中无法在不首先获取实体的情况下更新实体相关的知识,希望对你有一定的参考价值。

当我使用此代码更新CustomerName时,CustomerDesc变为NULL,反之亦然。我实施了在EF4 Update Entity Without First Getting Entity中找到的解决方案

using (var dbMdl = new TestDBEntityModel())
    {

        Customer pr1 = new Customer();
        pr1.CustomerId = 1;
        if(pr1.EntityState == EntityState.Detached)
            dbMdl.Customers.Attach(pr1);
       // pr1.CustomerName = "Changed!";
        pr1.CustomerDesc = "Changed!";
        dbMdl.ObjectStateManager.ChangeObjectState(pr1,        System.Data.EntityState.Modified); 
        dbMdl.SaveChanges();

    }
答案

通过在线教程后,我通过删除dbMdl.ObjectStateManager.ChangeObjectState(pr1, System.Data.EntityState.Modified);解决了它,它按预期工作。

以上是关于在EF4中无法在不首先获取实体的情况下更新实体的主要内容,如果未能解决你的问题,请参考以下文章

无法获取要更新实体框架中导航属性的关系

在实体框架中更新具有所需属性的实体

如何在不更新具有多对多关系的子实体的情况下保留父实体?

实体框架在不询问的情况下填充子实体[重复]

在不更新行版本的情况下检查实体的并发性

可跟踪实体主键违规 EF 4 问题