【发布时间】:2009-06-24 21:35:34
【问题描述】:
假设我有一个包含“File_ID”列的文件表。
如何编写快速 LINQ 查询/语句来将 File 表中的每个“File_ID”设置为“1”?
我在语句模式下使用 LINQPad,但这并不重要。
【问题讨论】:
标签: sql linq linq-to-sql
假设我有一个包含“File_ID”列的文件表。
如何编写快速 LINQ 查询/语句来将 File 表中的每个“File_ID”设置为“1”?
我在语句模式下使用 LINQPad,但这并不重要。
【问题讨论】:
标签: sql linq linq-to-sql
LINQ 用于查询,而不是更新。 LINQ to SQL(和其他数据源)模型使用 Add、Remove、getter 和 setter 的传统对象模型,以及 Update() 将变更集提交到数据支持。
您所描述的只是遍历表集合中的所有记录对象,设置属性并调用Update()。在 SQL 中使用单个 UPDATE 命令执行此操作会更快、更有效。
myDataContext.ExecuteQuery("UPDATE [File] SET File_ID = {0}", 1);
【讨论】:
有点作弊:
dataContext.ExecuteQuery("update File set File_ID = 1");
【讨论】:
这不是 Linq2SQL 最擅长的,但您可以尝试以下方法:
using(var ctx = new MyDataContext())
{
foreach(var f in ctx.Files)
{
f.File_ID = 1;
}
ctx.SubmitChanges();
}
【讨论】: