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 關注
- 147 瀏覽
添加回答
舉報