使用 LinqSQL 从表中更新列的有效方法

本文关键字:有效 方法 更新 LinqSQL 使用 | 更新日期: 2023-09-27 18:36:02

例如

,在Sql中,我会这样做:

UPDATE MyTable SET MyColum='value' WHERE Id=132

EF 代码优先数据库中的等效项如何?

更新:

看到回复,我需要澄清我的问题。我正在寻找一种更新一列的有效方法。如果我使用 Single() 或任何类似的函数,性能会很差,原因有两个:1) 有 2 个 SQL 语句,一个用于 SELECT,一个用于 UPDATE,2) Single 函数检索所有列。

UPDATE MyTable SET MyColum='value' WHERE Id=132

上面的句子是有效的,因为它只是一个事务,没有值从服务器发送到客户端。我希望哪个是Linq Sql中的等效句子。

使用 LinqSQL 从表中更新列的有效方法

SingleOrDefault 如果存在于数据库中,将返回该对象,否则返回 null:

var row = context.MyTable.SingleOrDefault(x => x.id == 132);
if(row != null) {
  row.MyColumn = "Value";
  context.SaveChanges();
}

我认为一个事务是不可能的。您首先需要检查要更新的行是否在您的表中

using (MyEntities me=new MyEntities())
{
     if( (from t in me.MyTables where mt.Id == 132 select t).Any())
     {    
         MyTable mt= (from t in me.MyTables where mt.Id == 132 select t).Single();
         mt.MyColumn= "Value";
         me.SaveChanges();
     }
}