2011-10-18 17 views
0

ADO.Entityを使用して1つのレコード(特定のIDを持つ)に対して1つのフィールドを更新するベストプラクティスは何ですか? 私の知る限りでは、あなたは、idでオブジェクト全体を検索するプロパティを更新し、SaveChangesメソッドを呼び出す必要があり:ADO.Entityレコード全体を取得せずにレコードの1つのフィールドを更新する

int id = ...; 
var db = new MyEntities(); 
var o = (from mo in db.myObject 
     where mo.id = idObject 
     select mo).First(); 
o.MyProperty = "some value"; 
db.SaveChanges(); 

しかし、私はしませんので、それは、全体のオブジェクトを取得する必要が少しオーバーヘッドと思われます値に関係なく、プロパティを設定したいだけなので、レコードの値を気にする必要があります。

別のオプションは、この目的のためにストアドプロシージャを作成することです...

+0

なぜレコード全体の取得が問題だと思いますか?これがdbシステムの目的です。レコードが大きすぎる場合(複数のBLOBなどが含まれている場合)、スキーマを再作成する必要があります。 –

+0

アプリケーションの作業中に何千回も実行されている動作の場合、オーバーヘッドであるため、これは問題ではないと私は同意しません。サイズに関係なく、使用していないデータを取得する意味はありません。 – nogola

+0

教授ドナルドクヌス(Donald Knuth)、「時間の約97%という小さな効率を忘れるべきです。**早期最適化はすべての悪の根源です**」[記事](http://en.wikipedia.org/wiki/Program_optimization) –

答えて

2

日時:What is the best practise for updating a single field for one record (with specific ID) using ADO.Entity?

回答:ベストプラクティスは、レコード全体を検索する1つまたは複数のフィールドを更新し、保存することですレコード。 - あなたがやっているように。

関連する問題