2009-06-18 17 views
0

を使用して列をインクリメント:LINQの - 私はこのコードを持っている主キー

Message message = new Message(); 
    message.Id = 5; 
    message.EntityKey = context.CreateEntityKey("MessageSet", entity); 
    message.Votes++; 
    context.Attach(entity); 
    context.ObjectStateManager.GetObjectStateEntry(entity.EntityKey).SetModifiedProperty("Votes"); 
    Save(); 

をしかし、もちろん、投票を生成するにはどうすればよい0

Update Messages set Votes=Votes+1 where Id = 5 
のようなものを初期化します

??私はあなたが直接これを達成することができないと思います Thxを

答えて

0

は、しかし、あなたはいくつかのインポート機能を使用して、あなたが必要なものを行うためにSPを使用することができます。

1

LINQ to EntitiesはORマッパーであるため、更新する必要があるエンティティを最初に照会し、コード内のオブジェクトで更新し、ObjectContextでUpdateコマンドを発行してそれらのエンティティに変更されます。重要なことですが、早い段階で把握するのは難しいですが、Entity Framework、Hibernate、LINQ to SQLなどのようなORMを使用する理由は、SQLを記述する必要性を排除し、代わりにオブジェクトを使用することです。

次はあなたが必要なものでなければなりません:

Message msg = context.Messages.First(m => m.Id == 5); 
msg.Votes += 1; 

context.SaveChanges(); 

のSaveChangesへの呼び出しは、あなたのための更新ごとに1をSQL CUD文を生成挿入、および/または削除させていただきます。

+0

はい、その答えは、同じ情報をリフレッシュする同時ユーザーを扱う際に失敗する可能性があるという問題を解決します。 –

+0

はい、しかし、私はしたくないSelect = / –

関連する問題