2011-12-22 32 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

+0

@MatthiasKoch:定義を見るためにlinq-to-sqlクラスに入ると、「public System.Data.Linq.Table TableName」のようなものがあります。 – frenchie

+0

@MatthiasKoch:そうです。 MyTable型のオブジェクトを作成し、そのプロパティをMyObjectModelオブジェクトからMyTableオブジェクトにコピーする必要がありました。ありがとう。まだ主キーを返す作業をしています。 – frenchie

答えて

2

場合は、あなただけのタイプObjectModelのオブジェクトを追加することができます。 linq2sqlデザイナーのすべてのプロパティを持つMyObjectModelクラスを作成してみてください。

3

MyTable.InsertOnSubmit(TheNewObject)に新しいオブジェクトがMyTableが届くことを確認してください。そして、SubmitChanges()を呼び出す:MyTableはタイプTable<ObjectModel>である

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

    return TheNewObject; 
} 
+0

"InsertOnSubmitには無効な引数がいくつかあります"。あなたの答えはこれを解決しません。 – Matthias

+1

@MatthiasKoch私はSOがダウンしたときに私はちょうど編集していた... – TheBoyan