C# 实体框架外键表isn';t保存对其BindingSource所做的更改
我有两张桌子:C# 实体框架外键表isn';t保存对其BindingSource所做的更改,c#,data-binding,linq-to-entities,entity-framework-4,C#,Data Binding,Linq To Entities,Entity Framework 4,我有两张桌子: CREATE TABLE `Vehicles` ( `ID` int(10) unsigned NOT NULL AUTO_INCREMENT, ... Other columns PRIMARY KEY (`ID`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1 以及: 以下是数据对象的图片: 我将Vehicle和Vehicle选项拖放到我的表单上。然后,我使用LINQ查询加载
CREATE TABLE `Vehicles` (
`ID` int(10) unsigned NOT NULL AUTO_INCREMENT,
... Other columns
PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1
以及:
以下是数据对象的图片:
我将Vehicle和Vehicle选项拖放到我的表单上。然后,我使用LINQ查询加载数据库:
var dataSource = from v in Database.DataContext.Vehicles.Include("VehicleOptions")
orderby v.Stock descending
select v;
// The vehicles BindingSource
bsVehicles.DataSource = dataSource;
// The vehicleoptions BindingSource
bsVehicleOptions.DataSource = bsVehicles;
bsVehicleOptions.DataMember = "VehicleOptions";
每当我在表格上添加/编辑数据时,我调用:
bsVehicles.SuspendBinding();
bsVehicleOptions.SuspendBinding();
Database.DataContext.SaveChanges();
bsVehicleOptions.ResumeBinding();
bsVehicles.ResumeBinding();
对bsVehicles
所做的更改保存在my MySQL数据库中,但对bsVehicleOptions
所做的更改不保存。即使在表单上,绑定到bsVehicleOptions
的控件也会在Database.DataContext.SaveChanges()上清空其数据代码>我是不是遗漏了什么
注意:我使用的是Entity Framework V4(我听说旧版本中的关联很时髦?)能否尝试分离,然后将VehicleOptions附加到Vehicles对象图中,然后调用context.SaveChanges()?将其与数据上下文分离?如果车辆选项尚不存在(例如,我正在添加一辆新车),该怎么办?图像链接已断开。为什么要围绕保存执行挂起/恢复绑定?
bsVehicles.SuspendBinding();
bsVehicleOptions.SuspendBinding();
Database.DataContext.SaveChanges();
bsVehicleOptions.ResumeBinding();
bsVehicles.ResumeBinding();