您不需要查詢任何內容來執行插入操作。當使用實體框架進行插入時,LINQ將不起作用。使用您要創建的實體的Create ...工廠方法。然後,將它添加到實體上下文並調用SaveChanges()方法。
例如(vb.net),如果有一個表/實體名爲訂單和實體上下文稱爲OrderEntities工作:
Using context As New OrderEntities
Dim order As Order = Order.CreateOrder(OrderNumber, Description, etc)
context.AddToOrders(order)
context.SaveChanges()
End Using
這將被改造成一個INSERT語句到數據庫。
這是一個非常簡單的例子。您可能需要添加關聯,執行驗證等。但是,它說明您可以使用實體框架進行插入,而無需首先執行LINQ to Entities查詢。
編輯:
是在一側或關係的很多方面這個表?如果它位於一側(主鍵表),則不需要執行任何操作,因爲外鍵引用位於另一個表中。如果它是多邊(外鍵表),那麼在調用AddTo()方法之前,需要設置外鍵關聯。
如果外鍵是加載到實體上下文的實體,您可以直接設置它:order.Customer = customer
但是,如果它不是從數據庫中加載,你可以設置的EntityKey:order.CustomerReference.EntityKey = New EntityKey("OrderEntities.Customer", "CustomerID", 5)
哦,你真的需要學習數據庫和SQL是如何工作的。因爲對此的回答是「只需插入數據」。 – 2011-02-07 16:34:21
當您有多個需要與主鍵/外鍵同步的表時,並不那麼簡單 - 請參閱http://blogs.msdn.com/b/efdesign/archive/2009/03/16/foreign-keys-in-the-the- entity-framework.aspx – Contango 2011-02-07 20:29:28