Как обновлять строки в базе данных (LINQ to SQL)

Строки в базе данных можно обновить, изменив значения членов объектов, связанных с коллекцией LINQ to SQL Table<TEntity> и затем отправив эти изменения в базу данных. LINQ to SQL преобразует изменения в соответствующие команды операций SQL UPDATE.

ПримечаниеПримечание

Можно переопределить методы LINQ to SQL, используемые по умолчанию для операций Insert, Update и Delete базы данных.Дополнительные сведения см. в разделе Настройка операций вставки, обновления и удаления (LINQ to SQL).

Пользователи среды Visual Studio могут воспользоваться Реляционный конструктор объектов для разработки хранимых процедур, выполняющих те же задачи.Дополнительные сведения см. в следующем разделе. Реляционный конструктор объектов и Реляционный конструктор объектов и Реляционный конструктор объектов.

В следующих шагах предполагается, что подключение к базе данных Northwind выполняется с помощью допустимого объекта DataContext. Дополнительные сведения см. в разделе Как соединиться с базой данных (LINQ to SQL).

Чтобы обновить строку в базе данных, выполните следующие действия.

  1. Отправьте в базу данных запрос на обновляемую строку.

  2. Выполните необходимые изменения значений членов полученного объекта LINQ to SQL.

  3. Отправьте изменения в базу данных.

Пример

В следующем примере выполняются запросы к базе данных для заказа № 11000, а затем изменяются значения ShipName и ShipVia полученного объекта Order. И наконец, изменения этих членов отправляются в базу данных в качестве изменений столбцов ShipName и ShipVia.

' Query the database for the row to be updated.
Dim ordQuery = _
    From ord In db.Orders _
    Where ord.OrderID = 11000 _
    Select ord

' Execute the query, and change the column values
' you want to change.
For Each ord As Order In ordQuery
    ord.ShipName = "Mariner"
    ord.ShipVia = 2
    ' Insert any additional changes to column values.
Next

' Submit the changes to the database.
Try
    db.SubmitChanges()
Catch e As Exception
    Console.WriteLine(e)
    ' Make some adjustments.
    ' ...
    ' Try again
    db.SubmitChanges()
End Try
// Query the database for the row to be updated.
var query =
    from ord in db.Orders
    where ord.OrderID == 11000
    select ord;

// Execute the query, and change the column values
// you want to change.
foreach (Order ord in query)
{
    ord.ShipName = "Mariner";
    ord.ShipVia = 2;
    // Insert any additional changes to column values.
}

// Submit the changes to the database.
try
{
    db.SubmitChanges();
}
catch (Exception e)
{
    Console.WriteLine(e);
    // Provide for exceptions.
}

См. также

Задачи

Как назначить хранимые процедуры для выполнения обновлений, вставок и удалений (реляционный конструктор объектов)

Другие ресурсы

Как управлять конфликтами изменений (LINQ to SQL)

Внесение и отправка изменений данных (LINQ to SQL)