实体框架4合并两个实体之间的更改

时间:2011-02-08 20:13:29

标签: asp.net c#-4.0 entity-framework-4 objectdatasource

我在ASP.NET应用程序中使用ObjectDataSource。

使用ASPxGridView。当更新它回到数据访问层并尝试更新实体时,现在正如我所看到的那样,当实体到达更新方法时,有一些属性(列,可见=假),visible = false列没有值。

我不想显示所有列...如果我需要30列中的3列怎么办?所以我想我会从上下文中获取原始实体并合并更新实体的差异。

是否有可能使用实体框架发生这种情况?或任何():)

谢谢

1 个答案:

答案 0 :(得分:1)

您正在使用分离的实体,并且只修改了选定的属性=>您是唯一知道修改了哪些属性的人,您必须编写代码以将值从这些属性复制到更新的实体。更新所选属性的方法有多种 - 您可以使用simple approach,也可以构建repository

修改

如果要在ObjectDataSource上调用update时获取整个对象,则必须将整个对象传递给网格(到客户端)。这意味着您已将所有对象属性绑定到某些控件。简单的方法是使用HiddenField控件。但是在隐藏字段的情况下,您无法确定用户是否会修改发布的值,从而导致不必要的更新。例如,假设您将产品价格发布到隐藏字段中。如果用户使用某个工具拦截请求并更改价格,您将把它更新到您的数据库中!

另一种方法是创建自定义Web控件,该控件将值存储在ViewState中,而不是普通的隐藏输入。