亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在實體框架中插入多對多的鏈接表

在實體框架中插入多對多的鏈接表

C#
大話西游666 2022-10-23 16:44:43
我有 3 張桌子Operator OperatorWarehouse 倉庫|   Operators   |     |   OperatorsWarehouses  |     |   Warehouses  ||   OperatorID  |  -  |        OperatorID      |  -  |   WarehouseID ||   EmployeeID  |     |        WarehouseID     |     |   Warehouse   |所以基本上在我的實體框架中,“OperatorsWarehouses”表沒有出現......Warehouses 表中已經有數據了,我只需要插入 Operators 和 OperatorsWarehouses 來建立關系。這是我的代碼using (InventoryContext db = new InventoryContext ()){   Employee employee = new Employee();   employee.EmployeeID = Convert.ToInt32(ddlOperators.SelectedValue);   var operator = new Operator();   operator.EmployeeID = employee.EmployeeID ;   db.Operator.Add(operator);   db.SaveChanges();                          ddlOperators.DataBind();}                    我已經試過了operator.Warehouses.Add(new Warehouse());但這將插入到倉庫表中,我不想這樣做,我只想在該表上插入運算符
查看完整描述

3 回答

?
慕哥9229398

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();

}         


查看完整回答
反對 回復 2022-10-23
?
炎炎設計

TA貢獻1808條經驗 獲得超4個贊

添加[NotMapped]您的定義表:

像這樣的東西

[NotMapped]
public List<Warehouse> Warehouses;


查看完整回答
反對 回復 2022-10-23
?
30秒到達戰場

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


查看完整回答
反對 回復 2022-10-23
  • 3 回答
  • 0 關注
  • 147 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號