LinqToEntity -更新所有记录

本文关键字:记录 更新 LinqToEntity | 更新日期: 2023-09-27 18:09:37

我将只修改一个数据库表的所有记录中的一个属性,并且我不想物化所有记录(因为它是通过方法ToList()完成的,然后遍历实体集合,然后提交)。我使用EF (5.0, NET 4.0)和linq(因此LinqToEntity)。

我的意思是我想找到以下SQL语句的linq对应物:

UPDATE Table
SET Property='NewValue';

有可能吗?

LinqToEntity -更新所有记录

可以在上下文中运行SQL代码,而不使用db。SaveChanges:

using(var db = new YourDbContext())
{
    db.Database.ExecuteSqlCommand("UPDATE TABLE SET PROPERTY='NewValue'");
}

如果您需要参数化值,那么您也可以这样做:

db.Database.ExecuteSqlCommand("UPDATE TABLE SET PROPERTY=@Property",
    new SqlParameter("@Property", someVariable));

您可以使用ExecuteSqlCommand:

contex.Database.ExecuteSqlCommand("UPATE Table SET Property = @p0", value)