2009-06-08 4 views
1

はい、この件名はネット上の何百ものポストでカバーされていますが、ただ1つのフィールドを変更するだけで、エンティティ全体をロードすることを必要としないものが見つかりました。エンティティのすべてのプロパティで "Update Check"を変更するとこれが解決されると示唆していた人もいましたが、これまでのところ私のアプローチにかかわらずChangeConflictExceptionsを取得しています。私の乳母であることをやめてL2Sに更新してもらうように指示する方法はありますか?LinqからSQLへの単一フィールドの更新 - すべての同時実行ロジックを無効にすることはできますか?

var context = new MyDataContext(); 
var person = new Person() {Id = 5}; 
person.LastName = "Johanssen"; 
context.People.Attach(person); 
context.SubmitChanges(); 

あなたの洞察力に感謝します。

James

答えて

2

私はVisual Studioを十分に見ていませんでした。デザイナーでは、生成されたエンティティを表示するためにMyModel.desinger.csファイルを見たときに、すべてのフィールドをUpdateCheckに変更しましたが、その属性はほとんどのフィールドに追加されていませんでした。属性を追加すると、更新が完了し、すべてがうまくいっていました。

この属性を多くのフィールドに一度に追加する必要がある場合は、ファイルのすべての列に追加するVS正規表現の置き換えを次に示します。私はまずファイルをチェックインして(またはバックアップしておくことをお勧めします)、最初にすべてのハードワークを失うことがないようにしてください。すでに属性を一部に設定している場合は、その属性が2倍になります(したがって、2番目の置換が下になります)。

Find and Replace (Regular Expressions on) 
\[Column{.*}\)\] 
[Column\1, UpdateCheck=UpdateCheck.Never)] 

Find and Replace (Regular Expressions off) 
UpdateCheck=UpdateCheck.Never, UpdateCheck=UpdateCheck.Never 
UpdateCheck=UpdateCheck.Never 
関連する問題