LinqToEntity - 更新所有记录

时间:2014-06-20 14:27:00

标签: c# sql .net linq entity-framework

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

我的意思是我想找到以下SQL语句的linq副本:

UPDATE Table
SET Property='NewValue';

有可能吗?

2 个答案:

答案 0 :(得分:2)

您可以在不使用db.SaveChanges的情况下通过上下文运行SQL代码:

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));

答案 1 :(得分:1)

您可以使用ExecuteSqlCommand

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