2010-06-29 48 views
0

我創建了兩個單獨的對象,其中一個是Order類,另一個是類TempOrder。當我嘗試使用db.TempOrders.InsertOnSubmit(obj)將數據庫中的TempOrder對象插入數據庫,然後調用db.SubmitChanges時,Order對象也會被提交(不需要附加到datacontext或任何東西)。數據庫中的兩個對象之間沒有關係,但我在類中創建了一個簡單的成員函數,以在您有TempOrder時創建Order對象,反之亦然(toNewOrder - toNewTempOrder)。我正在使用的代碼在下面可以看到:LINQ DataContext插入未連接的對象

if(order.PaymentType == "Paypal") 
{ 
    TempOrder temp = new TempOrder(); 
    temp = order.ToNewTempOrder(); 
    db.Add(temp);//Add is calling datacontext.TempOrders.InsertOnSubmit and datacontext.SubmitChanges 
} 

當db.Add(TEMP)被稱爲變更包含臨時對象和順序對象爲好。我怎樣才能避免這種情況?我做錯了什麼?這是因爲函數.toNewTempOrder()?我堅持這一點。

+0

TempOrder是否從Order繼承? – 2010-06-29 07:44:21

+0

編號兩個不同的類沒有關係(兩個不同的表沒有fks),只是該函數將一個對象的屬性複製到另一個對象上,如上所述。 – gmakrygiannis 2010-06-29 07:51:55

+0

你可以發佈'ToNewTempOrder()'方法的代碼嗎? – decyclone 2010-06-29 08:21:28

回答

0

你的代碼是如何獲得我們在代碼片段中看到的那個訂單對象的?

你確定沒有從你的C#代碼中派生出來嗎?如果C#類是手工製作的,那麼它們表示的SQL表仍然可以完全不連接。

db.Add(...)是否被重載,或者它需要一些基本類型,然後根據實際的參數類型做出決定?