假设我有一个带有“File_ID”列的文件表。
如何编写快速LINQ查询/语句以将File表中的每个“File_ID”设置为“1”?
我在语句模式下使用LINQPad,但这并不重要。
答案 0 :(得分:3)
LINQ用于查询,而不是更新。 LINQ to SQL(和其他数据源)模型使用Add,Remove,getters和setter的传统对象模型,以及Update()将变更集提交给数据后备。
您所描述的只是迭代表集合中的所有记录对象,设置属性并调用Update()
。使用单个UPDATE
命令在SQL中执行此操作会更快更高效。
myDataContext.ExecuteQuery("UPDATE [File] SET File_ID = {0}", 1);
答案 1 :(得分:1)
有点作弊:
dataContext.ExecuteQuery("update File set File_ID = 1");
答案 2 :(得分:1)
这不是Linq2SQL最擅长的,但你可以尝试这样的事情:
using(var ctx = new MyDataContext())
{
foreach(var f in ctx.Files)
{
f.File_ID = 1;
}
ctx.SubmitChanges();
}