如何更新记录而不在ADO.NETentity framework中再次选择该记录?

大家好我正在做这样的事情 –

void update(ClasstoUpdate obj)//obj is already having values to update... { var data= (from i in Entityobject.ClasstoUpdate where obj.Id==i.Id select i).FirstorDefault(); data.Name="SomeCoolName"; EntityObject.SaveChanges(); } 

我想在不再使用Id进行查询的情况下执行更新,是否有任何方法我只是将更新的对象传递给ADO.NETentity framework并更新它。对不起,如果我在这里遗漏了一些东西,但这是我的方式一直在想它是否有一种简单的更新方式。 谢谢。

更新对象的简单方法是获取它,更改它,并提交您正在进行的更改。

另一种方法是附加对象 ,并告诉entity framework该对象处于修改状态。

第三种方法是通过构造一个SQL字符串来更新对象,该字符串直接在数据库中更新对象而不提取它。 但是我不建议这样做。

附注:记得在函数中检查null。 如果您知道FirstOrDefault的返回值永远不会为null,那么您应该使用First 。 您可能还想考虑使用Single而不是First