我試圖學會使用實體框架,並通過實體框架食譜6書(甚至不試圖隱藏)。
工作2-4:
3個表:
訂購:訂單,訂購日期,(NAV屬性的OrderItems)
OrderItem的:的OrderId,SKU數(淨值屬性,項目,定單)
項:SKU,說明,價格(NAV屬性的OrderItems)實體框架6多對多
using (var context = new EFRecipesContext()) {
var order = new Order { OrderId = 1, OrderDate = new DateTime(2010, 1, 18) };
var item = new Item { SKU = 1729, Description = "Backpack", Price = 29.97M };
var oi = new OrderItem { Order = order, Item = item, Count = 1 };
item = new Item { SKU = 2929, Description = "Water Filter", Price = 13.97M };
oi = new OrderItem { Order = order, Item = item, Count = 3 };
item = new Item { SKU = 1847, Description = "Camp Stove", Price = 43.99M };
oi = new OrderItem { Order = order, Item = item, Count = 1 };
context.Orders.Add(order);
context.SaveChanges();
}
是被添加到數據庫中的唯一的事情就是命令,沒有別的,沒有項目,等等。我曾與前面的例子中的一個問題,不得不單獨添加「其他」項目,但我認爲這一點是,你可以做一個「添加」,它會將所有對象添加到數據庫?
在此先感謝!
UPDATE
好吧,我做基於下面的建議,以下變化,現在它的工作
using (var context = new EFRecipesContext()) {
var order = new Order { OrderId = 1, OrderDate = new DateTime(2010, 1, 18) };
var item = new Item { SKU = 1729, Description = "Backpack", Price = 29.97M };
var oi = new OrderItem { Order = order, Item = item, Count = 1 };
order.OrderItems.Add(oi); // suggestion from Stackoverflow.
item = new Item { SKU = 2929, Description = "Water Filter", Price = 13.97M };
oi = new OrderItem { Order = order, Item = item, Count = 3 };
order.OrderItems.Add(oi); // suggestion from Stackoverflow.
item = new Item { SKU = 1847, Description = "Camp Stove", Price = 43.99M };
oi = new OrderItem { Order = order, Item = item, Count = 1 };
order.OrderItems.Add(oi); // suggestion from Stackoverflow.
context.Orders.Add(order);
context.SaveChanges();
}
至少現在我知道在他們的代碼向前得到它的工作改變。謝謝!!
謝謝,這可能是我收到過的最糟糕的一本書了,自從VB 5發佈以來,我一直在閱讀它們。似乎他們留下了一些「重要」的事情。 – DRouleau
我忘了提及,我喜歡內聯的想法,可能我會如何去做。再次感謝。 – DRouleau