1
我對實體框架和模式相當陌生。我如何將數據插入到子表中?如何將行插入子表中?
我將信息插入到父表中。我是否必須返回該行的標識,然後發出另一個插入?
用戶表和用戶角色。
我一直在努力尋找一天的解決方案,但我認爲它是因爲我在尋找錯誤的結果。我的結構是使用工作單元/存儲庫模式設置的。
任何幫助將有所幫助。謝謝!
我對實體框架和模式相當陌生。我如何將數據插入到子表中?如何將行插入子表中?
我將信息插入到父表中。我是否必須返回該行的標識,然後發出另一個插入?
用戶表和用戶角色。
我一直在努力尋找一天的解決方案,但我認爲它是因爲我在尋找錯誤的結果。我的結構是使用工作單元/存儲庫模式設置的。
任何幫助將有所幫助。謝謝!
獲取父對象。將子記錄添加到其導航屬性。
像這樣
int orderId=33;
var parent=dbContext.Orders.Where(x=>x.Id==orderId);
parent.Details.Add(new OrderDetail{ Quantity=4, ItemId=37});
parent.Details.Add(new OrderDetail{ Quantity=2, ItemId=48});
dbContext.SaveChanges();
假設訂單是您的主實體和細節是你的孩子實體的DbContext是你的DbContext類對象。
編輯:如果您一起加入吧,
Order parent=new Order { CustomerId=35, Discount=43.63 };
parent.Details.Add(new OrderDetail{ Quantity=4, ItemId=37});
parent.Details.Add(new OrderDetail{ Quantity=2, ItemId=48});
dbContext.Orders.Add(parent);
dbContext.SaveChanges();
這是做到這一點的唯一途徑?抓住身份證,然後運行另一個SaveChanges()?我試圖看看是否有另外一種方式來執行此操作,因爲它將運行SaveChanges()兩次。 – xivo
@AllenTong:它只運行一次SaveChanges。不是兩次。 – Shyju
是的,但我的意思是當我添加Order時,然後添加了OrderDetails。這會導致我在添加訂單時運行兩次,並且需要在後面添加orderdetail。 – xivo