我只修改一个数据库表的所有记录中的一个属性,并且我不想实现所有记录(因为它是通过方法ToList()完成的,然后迭代通过实体的集合,然后提交)。 我使用EF(5.0,NET 4.0)和linq(因此LinqToEntity)。
我的意思是我想找到以下SQL语句的linq副本:
UPDATE Table
SET Property='NewValue';
有可能吗?
答案 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)