2009-07-02 12 views
0

linq2sqlで部分的な更新が可能ですか?Linq to SQLの部分的な更新?

私は奇妙ではない場合、私は、私は「データベースからフェッチ更新し、それを変更し、」プロセスを少し、うまく無効を見つける

update table set col1 = val1, col2 = val2 where id = @id 

ようなSQLを使用する唯一の2つのフィールドを更新する場合。

答えて

0

LINQ(言語統合クエリ)は完全なCRUDではなく照会用です。 LINQ-to-SQLは、一般的なオブジェクトモデルを使用して更新、削除、および作成アクションを処理します。

すでに更新したいオブジェクトのIDを持っているので、我々はLINQ内のエンティティオブジェクト(例えばfrom item in table where id=1 select item)ことをあなたは持っていると仮定します:これはあなたが持っている一回限りの更新のために働く

myItem.Col1 = "val1"; 
myItem.Col2 = "val2"; 

dataContext.SubmitChanges(); 

変更する特定のレコード。何らかの理由で、あなたは元のエンティティオブジェクトを持っていますが、IDを持っていない、場合

、あなたはDataContextのを経由して、任意のSQLを実行することができます。

dataContext.ExecuteQuery(
    "UPDATE table SET col1={0}, col2={1} WHERE ID={3}", 
    value1, 
    value2, 
    id); 
+0

を参照してください。 – Vnuk

0

はい、あなたは更新文を生成することができますフェッチ行わず:

Foo foo=new Foo { FooId=fooId }; // create obj and set keys 
context.Foos.Attach(foo); 
foo.Name="test"; 
context.SubmitChanges(); 

は、私は感謝、そう思っhttps://stackoverflow.com/a/3351534/52817

関連する問題