2016-08-20 3 views
2

Я пытаюсь обновить базу данных через Linq-to-SQL.Как обновить базу данных с помощью LINQ? Linq-to-SQL

У меня есть таблица с именем Staff_Time_TBL, которая имеет 9 столбцов. Я пытаюсь обновить одну запись столбцов на потенциально несколько строк.

Мой запрос LINQ выглядит следующим образом. Он захватывает данные из столбца Section_Data с указанной даты на другую указанную дату и из числа сотрудников.

DatabaseDataContext Sql = new DatabaseDataContext(ConnectionString); 

var getList = Sql.Staff_Time_TBLs.Where(
       staff => staff.Staff_No == staffNo && 
       staff.Date_Data >= dateFrom && 
       staff.Date_Data <= dateTo) 
       .Select(staff => staff.Section_Data).ToList(); 

Я тогда буду использовать foreach цикл для перебора, хотя сбор и обновление базы данных,

foreach (var item in getList) 
       {      
        item.Section_Data = "myValue"; 
       } 
     Sql.SubmitChanges(); 

Проблема заключается в том, что это ниже, сущность Section_Data не существует.

item.Section_Data 

Итак, я думаю, что я не правильно собрал LINQ, чтобы иметь возможность доступа к объектам? Как изменить запрос, чтобы я мог получить доступ к объекту для обновления базы данных?

+0

Я предполагаю, но потому, что вы выбираете 'staff.Section_Data', это не вероятно, что вы можете сделать' item.Section_Data'. Возможно, просто удалите часть 'Select (...)' вашего кода? – DavidG

+0

@DavidG, спасибо, что вы были верны. Большое спасибо за помощь. – KyloRen

ответ

1
var getList = Sql.Staff_Time_TBLs.Where(
       staff => staff.Staff_No == staffNo && 
       staff.Date_Data >= dateFrom && 
       staff.Date_Data <= dateTo) 
       .Select(staff => staff.Section_Data).ToList(); 

Этот запрос даст вам только данные типа Section_Data, потому что вы выбираете Section_Data, и при запуске для каждого на это, вы будете иметь возможность получить доступ к атрибутам, связанные с, что только, следовательно, просто удалить выберите часть из запроса.

var getList = Sql.Staff_Time_TBLs.Where(
       staff => staff.Staff_No == staffNo && 
       staff.Date_Data >= dateFrom && 
       staff.Date_Data <= dateTo) 
       .ToList(); 

Теперь вы сможете получить доступ к атрибутам внутри него.

foreach (var item in getList) 
{      
    item.Section_Data = "myValue"; 
} 
Sql.SubmitChanges(); 
+0

Это сделало. Большое спасибо, я занимаюсь этим в течение последних нескольких дней. – KyloRen

0

попытка написать код:

enter code here 
var getList = Sql.Staff_Time_TBLs.Where(
      staff => staff.Staff_No == staffNo && 
      staff.Date_Data >= dateFrom && 
      staff.Date_Data <= dateTo) 
      .ToList(); 
Смежные вопросы