0
使用ADO.Entity更新单个记录(具有特定ID)的单个字段的最佳做法是什么? 据我所知,你必须检索由ID整个对象,更新属性和调用的SaveChanges:ADO.Entity更新一个记录的单个字段而不检索整个记录
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();
但似乎有点开销不必检索整个对象,因为我不关心记录的值,因为我只是想设置一个属性,而不考虑值。
另一种选择是为此创建一个存储过程...
你为什么认为检索整个记录是一个问题?这就是数据库系统所要做的。如果记录太大(包含多个BLOB等),那么你应该重新执行你的模式。 –
我不同意这不是问题,因为如果是在应用程序工作期间进行数千次的行为,那么这是一种开销。无论大小如何,获取不使用的数据都没有意义。 – nogola
见Donald Knuth教授,“我们应该忘记小效率,大约97%的时间:**过早优化是所有邪恶的根源**”[文章](http://en.wikipedia.org/wiki/Program_optimization) –