您好我有一个表'供应商'和另一个'SupplierPlants'我有两个表通过代码绑定到DataGridViews:
{% include "plot.html" %}
AppData类包含我的所有数据库实体:
bsSuppliers = new BindingSource();
bsSuppliers.DataSource = AppData.Suppliers;
bsSuppliers.AllowNew = true;
dgvSuppliers.DataSource = bsSuppliers;
dgvSuppliers.Refresh();
bsSuppliersPlants = new BindingSource();
bsSuppliersPlants.DataSource = AppData.SupplierPlants;
bsSuppliersPlants.AllowNew = true;
dgvSupplierPlants.DataSource = bsSuppliersPlants;
dgvSupplierPlants.Refresh();
现在我将RowEnter事件绑定到Supplier DataGridView,以便它只显示所选供应商的工厂:
Db = new PureTrialEntities();
Db.Suppliers.Load();
Suppliers = Db.Suppliers.Local;
Db.SupplierPlants.Load();
SupplierPlants = Db.SupplierPlants.Local;
问题是,当我调用 AppData.Db.SaveChanges(); 时,它会正确地将所有更改应用于供应商表,但它不会为SupplierPlants表添加新行,因为我已经采用了一个子集本地数据库。 我是否必须手动管理为此表添加的新行,因为我使用的是子集而不是整个本地数据库?
答案 0 :(得分:1)
答案 1 :(得分:0)
就像一个FYI我绑定了DGV CellEndEdit,只是将新添加的行添加到上下文中,如下所示:
private void dgvSupplierPlants_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
var data = ((SupplierPlant)((DataGridView)sender).Rows[e.RowIndex].DataBoundItem); //Get the Data for the edited Row.
if (AppData.Db.Entry(data).State == EntityState.Detached)
{
AppData.SupplierPlants.Add(data);
}
}