【问题标题】:Saving a modified object from ASP.NET MVC View Using Entity-Franework 4使用 Entity-Framework 4 从 ASP.NET MVC 视图中保存修改后的对象
【发布时间】:2010-12-30 02:14:11
【问题描述】:

我使用 EF4 从 DB 中检索对象图。 一旦数据检索和数据传递到控制器,然后再传递到视图,上下文就会关闭。在视图中数据被修改,然后控制器将其取回。

我从控制器运行 Repository.Update(MyEmp);

在我的存储库中,代码如下:

使用 (var context = new mydb())

        {
            if (myEmp.ID != 0)  // Checking if it's modified or new
            {

                context.Emp.Attach(MyEmp);
                int result = context.SaveChanges();
                return myEmp.ID;
            }
        }

问题 - 一旦附加,对象 entityState 将保持不变,而不是修改,当然 - 没有任何内容保存到数据库中。

我做错了什么?

【问题讨论】:

    标签: asp.net-mvc-2 entity-framework-4


    【解决方案1】:

    查看我的answer,了解有关保存分离实体的问题(第二部分)。您必须手动将状态设置为已修改。另请查看我的answer 关于保存对象图的信息。问题是您必须为对象图中的每个实体和关系手动设置状态。

    【讨论】:

    • 这里看起来是正确的方法。现在检查图表
    【解决方案2】:

    我正在使用类似于下面的代码来修改实体,

      Context.TryGetObjectByKey(EntityKey, EntityInstance);
       //EntityInstance:Nothing to do with your entity just create new instance and pass it to this method.
    

    我想 Attach 不是必需的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-28
      • 1970-01-01
      • 1970-01-01
      • 2013-06-24
      相关资源
      最近更新 更多