Как я могу установить значение столбца для каждой строки в таблице с помощью LINQ? - PullRequest
1 голос
/ 25 июня 2009

Допустим, у меня есть таблица файлов со столбцом "File_ID".

Как мне написать быстрый запрос / оператор LINQ, чтобы установить для каждого «File_ID» в таблице файлов значение «1»?

Я использую LINQPad в режиме Statement, но на самом деле это не имеет значения.

Ответы [ 3 ]

3 голосов
/ 25 июня 2009

LINQ для запроса, а не обновления. Модели LINQ to SQL (и других источников данных) используют традиционную объектную модель Add, Remove, getter and setters и Update () для фиксации набора изменений в базе данных.

То, что вы описываете, - это просто перебор всех объектов записей в вашей коллекции таблиц, установка свойства и вызов Update(). Было бы гораздо быстрее и эффективнее сделать это в SQL с помощью одной команды UPDATE.

myDataContext.ExecuteQuery("UPDATE [File] SET File_ID = {0}", 1);
1 голос
/ 25 июня 2009

Это не то, в чем Linq2SQL лучше, но вы можете попробовать что-то вроде этого:

using(var ctx = new MyDataContext())
{
    foreach(var f in ctx.Files)
    {
        f.File_ID = 1;
    }
    ctx.SubmitChanges();
}
1 голос
/ 25 июня 2009

Вид мошенничества:

dataContext.ExecuteQuery("update File set File_ID = 1");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...