2011-12-22 137 views
1

我有一個映射到數據庫表的對象模型。更新查詢看起來是這樣的現在:linq-to-sql InsertOnSubmit

public MyObjectModel CreateNewRecord(MyObjectModel TheNewObject) 
{ 
    using (MyDataContext TheDC = new MyDataContext()) 
    { 
    TheDC.MyTable.InsertOnSubmit(TheNewObject); 
    } 

    return TheNewObject; 
} 

代碼,否則不能用於嵌件(它告訴我,InsertOnSubmit有一些無效參數)工作。另外,我想返回插入的對象,以便我可以獲取插入項目的主鍵的值。

我需要改變什麼? 感謝您的幫助。

+1

TheDC.MyTable是什麼類型? – Matthias 2011-12-22 22:58:41

+0

@MatthiasKoch:當我進入linq-to-sql類來查看定義時,我有類似於「public System.Data.Linq.Table TableName」 – frenchie 2011-12-22 23:14:08

+0

@MatthiasKoch:好的,我認爲了。我必須創建一個MyTable類型的對象,然後將MyObjectModel對象中的屬性複製到MyTable對象。謝謝。仍在努力返回主鍵。 – frenchie 2011-12-22 23:18:10

回答

2

如果MyTableTable<ObjectModel>類型的,你只能加ObjectModel類型的對象。嘗試在linq2sql設計器中創建具有其所有屬性的MyObjectModel類。

3

確保在MyTable.InsertOnSubmit(TheNewObject)中新對象的類型爲MyTable可以接收。然後調用SubmitChanges()

public MyObjectModel CreateNewRecord(MyObjectModel TheNewObject) 
{ 
    using (MyDataContext TheDC = new MyDataContext()) 
    { 
    TheDC.MyTable.InsertOnSubmit(TheNewObject); 
    TheDC.SubmitChanges(); 
    } 

    return TheNewObject; 
} 
+0

「InsertOnSubmit有一些無效參數」。你的回答並沒有解決這個問題。 – Matthias 2011-12-22 23:03:11

+1

@MatthiasKoch我剛剛編輯時,SO下跌... – TheBoyan 2011-12-22 23:13:23