C# WinForms-数据绑定到1个表单上的2个表并保存到数据库

C# WinForms-数据绑定到1个表单上的2个表并保存到数据库,c#,winforms,data-binding,C#,Winforms,Data Binding,我有一个表格,其中包含客户的信息,如职位、姓名和地址,如城镇、国家 每个表都有一个类,它有一个Save方法来更新数据库 我想有两个绑定源,一个用于客户端,一个用于地址。控件将绑定到相关的bindingsource。当用户单击save按钮时,它将对每个bindingsource调用EndEdit,然后对CurrentItem调用save方法 这听起来是个好方法吗?您需要确保类/表之间的关系 我会确保在数据库中定义了适当的FK约束,然后生成Linq2Sql或ADO.Net实体模型并绑定到该模型 生成

我有一个表格,其中包含客户的信息,如职位、姓名和地址,如城镇、国家

每个表都有一个类,它有一个Save方法来更新数据库

我想有两个绑定源,一个用于客户端,一个用于地址。控件将绑定到相关的bindingsource。当用户单击save按钮时,它将对每个bindingsource调用EndEdit,然后对CurrentItem调用save方法


这听起来是个好方法吗?

您需要确保类/表之间的关系

我会确保在数据库中定义了适当的FK约束,然后生成Linq2Sql或ADO.Net实体模型并绑定到该模型

生成模型后,单击“数据>添加新数据源>对象”,然后从实体模型中选择客户对象

确保使用数据源工具窗口上的下拉列表为客户和嵌套地址选择“详细信息”

将客户从数据源工具窗口拖到表单中

然后将客户的address属性从工具窗口拖到表单中

您现在有两个绑定源,一个用于客户,一个用于地址。地址绑定源将使用客户绑定源作为其数据源

你现在有保险了。编辑表单并保存


在winforms应用程序上使用POCO DTO滚动您自己的数据绑定比您想做的工作要多,尤其是在已经为您提供了这些功能的情况下。

我无法将任何内容从address属性拖到表单上。我班上的类型是IQueryable,所以我想这可能就是原因。我所做的是为这两个类创建一个ViewModel,并将信息从每个类拖到表单中,这样就完成了操作,并且只使用了一个bindingsource。谢谢你走了。我考虑过只说“嵌套类并从根目录创建数据源”,但有时很难说这是否有帮助。干杯