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();
しかし、私はしませんので、それは、全体のオブジェクトを取得する必要が少しオーバーヘッドと思われます値に関係なく、プロパティを設定したいだけなので、レコードの値を気にする必要があります。
別のオプションは、この目的のためにストアドプロシージャを作成することです...
なぜレコード全体の取得が問題だと思いますか?これがdbシステムの目的です。レコードが大きすぎる場合(複数のBLOBなどが含まれている場合)、スキーマを再作成する必要があります。 –
アプリケーションの作業中に何千回も実行されている動作の場合、オーバーヘッドであるため、これは問題ではないと私は同意しません。サイズに関係なく、使用していないデータを取得する意味はありません。 – nogola
教授ドナルドクヌス(Donald Knuth)、「時間の約97%という小さな効率を忘れるべきです。**早期最適化はすべての悪の根源です**」[記事](http://en.wikipedia.org/wiki/Program_optimization) –