3 回答

TA貢獻1877條經(jīng)驗 獲得超6個贊
您應(yīng)該為 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貢獻1808條經(jīng)驗 獲得超4個贊
添加[NotMapped]
您的定義表:
像這樣的東西
[NotMapped] public List<Warehouse> Warehouses;

TA貢獻1828條經(jīng)驗 獲得超6個贊
當(dāng)它是“純”多對多關(guān)系時,實體框架將隱藏關(guān)系表。所以你不會看到OperatorsWarehouses表,它將由 EF 處理。
要添加關(guān)系,您只需將實體添加到實體,因此您可以將操作員添加到倉庫,也可以將倉庫添加到操作員。
在您的特定情況下,您需要將現(xiàn)有倉庫添加到操作員,或?qū)F(xiàn)有操作員添加到倉庫。像這樣的東西:
int whId = 1; //warehouse with id 1
db.Warehouses.FirstOrDefault(x => x.WarehouseID ==
whId ).Operators.Add(operator);
注意:注意 FirstOrDefault 如果沒有 id 為 1 的倉庫,它將返回 null
- 3 回答
- 0 關(guān)注
- 153 瀏覽
添加回答
舉報