【问题标题】:How to update a record without selecting that record again in ADO.NET Entity Framework?如何更新记录而不在 ADO.NET Entity Framework 中再次选择该记录?
【发布时间】:2010-05-19 04:52:26
【问题描述】:

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

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.NET 实体框架并更新它。如果我在这里遗漏了一些东西,我很抱歉,但这是我一直在做它想知道是否有一种简单的更新方法。谢谢。

【问题讨论】:

    标签: c# entity-framework ado.net


    【解决方案1】:

    更新对象的简单方法是获取它、更改它并提交更改,这就是您已经在做的事情。

    另一种方法是attach the object,并告诉实体框架该对象处于修改状态。

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

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

    【讨论】:

    • 对不起,我只是做了一个例子..是的,我会这样做...我要更新查询...我想知道的是我是否可以传递更新的对象以某种方式更新
    • 你能提供一个附加场景的例子吗?
    猜你喜欢
    • 1970-01-01
    • 2013-02-26
    • 2014-11-11
    • 2018-03-21
    • 1970-01-01
    • 2020-12-06
    • 1970-01-01
    相关资源
    最近更新 更多