使用 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中的等效句子。
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();
}
}