3 回答
TA贡献1877条经验 获得超6个赞
您应该为 Operator 的 Warehouse 提供 Id,如果您添加的 Warehouse 的 id 为 0,则它被认为是一个新的 Warehouse。您可以在 UI 中为用户在添加操作员后选择的仓库添加下拉列表。
using (InventoryContext db = new InventoryContext ())
{
Employee employee = new Employee();
employee.EmployeeID = Convert.ToInt32(ddlOperators.SelectedValue);
var wareHouseId = Convert.ToInt32(ddlWarehouses.SelectedValue);
var operator = new Operator();
operator.EmployeeID = employee.EmployeeID ;
operator.Warehouses.add(new Warehouse(){Id=wareHouseId});
db.Operator.Add(operator);
db.SaveChanges();
ddlOperators.DataBind();
}
TA贡献1828条经验 获得超6个赞
当它是“纯”多对多关系时,实体框架将隐藏关系表。所以你不会看到OperatorsWarehouses表,它将由 EF 处理。
要添加关系,您只需将实体添加到实体,因此您可以将操作员添加到仓库,也可以将仓库添加到操作员。
在您的特定情况下,您需要将现有仓库添加到操作员,或将现有操作员添加到仓库。像这样的东西:
int whId = 1; //warehouse with id 1
db.Warehouses.FirstOrDefault(x => x.WarehouseID ==
whId ).Operators.Add(operator);
注意:注意 FirstOrDefault 如果没有 id 为 1 的仓库,它将返回 null
- 3 回答
- 0 关注
- 173 浏览
添加回答
举报
