实体框架 DBContext 数据绑定问题

Posted

技术标签:

【中文标题】实体框架 DBContext 数据绑定问题【英文标题】:Entity Framework DBContext Databinding Issues 【发布时间】:2011-12-18 21:57:33 【问题描述】:

使用 VS2010、C#、Winforms 和 Entity Framework 4.1

这是我的代码

var order = dbContext.Orders.Where(o=>o.OrderId == 1).Single();
var orderDetails = order.OrderDetails.ToList():

textBox1.Bindings.Add("Text", order, "OrderAmount");
gridView.DataSource = orderDetails;

我有以下两个关于 Entity Framework 4.1 的问题

    如果我更新实体属性,新值不会反映到 UI。

    我想向实体属性设置器添加逻辑;但每次更新模型时都会重写。

谢谢。

【问题讨论】:

我的 Winforms 知识很差。但我认为您应该检查可视化组件的一些令人耳目一新的属性(据我了解,数据库中出现了一条新记录)。 【参考方案1】:

关于第二个问题。 自动更新类是模型首先工作的方式。 您可以阅读EF 4.1 Code-first vs Model/Database-first 了解更多信息。 有时候修改T4 template很方便。但我不建议更改 getter/setter。相反,添加一些数据注释属性可能会很有用。你可以在 MSDN 上阅读如何使用它:Using Data Annotations to Customize Data Classes How to: Validate Model Data Using DataAnnotations Attributes

【讨论】:

【参考方案2】:

在数据绑定内部使用 on 属性更改

textBox1.DataBindings.Add("Text",order,"OrderAmount",true,System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged);

【讨论】:

以上是关于实体框架 DBContext 数据绑定问题的主要内容,如果未能解决你的问题,请参考以下文章

如何使用实体框架或 MVC 项目绑定 HTML 选择元素?

在 DbContext 中看不到实体框架数据库更改

将实体框架对象绑定到 Datagridview C#

实体框架在 Visual Studio 中失去与连接字符串的绑定

我应该如何编写转换数据的实体框架迁移(最好使用 DbContext)?

如何使用未绑定到具有实体框架代码优先的特定表的序列?