Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Вы выполняете операции с Insert, Update и Delete в LINQ to SQL, добавляя, изменяя и удаляя объекты в вашей объектной модели. По умолчанию LINQ to SQL преобразует действия в SQL и отправляет изменения в базу данных.
LINQ to SQL обеспечивает максимальную гибкость в управлении и сохранении изменений, внесенных в объекты. Как только объекты сущностей доступны (путем извлечения их через запрос или путем создания их заново), их можно изменить как типичные объекты в приложении. То есть вы можете изменить их значения, добавить их в коллекции и удалить их из коллекций. LINQ to SQL отслеживает изменения и готов передавать их обратно в базу данных при вызове SubmitChanges.
Замечание
LINQ to SQL не поддерживает или распознает операции каскадного удаления. Если вы хотите удалить строку в таблице с ограничениями, необходимо задать ON DELETE CASCADE правило в ограничении внешнего ключа в базе данных или использовать собственный код, чтобы сначала удалить дочерние объекты, которые препятствуют удалению родительского объекта. В противном случае создается исключение. Дополнительные сведения см. в разделе "Практическое руководство. Удаление строк из базы данных".
В следующих фрагментах используются классы Customer и Order из примерной базы данных Northwind. Определения классов не отображаются для краткости.
Northwnd db = new Northwnd(@"c:\Northwnd.mdf");
// Query for a specific customer.
var cust =
(from c in db.Customers
where c.CustomerID == "ALFKI"
select c).First();
// Change the name of the contact.
cust.ContactName = "New Contact";
// Create and add a new Order to the Orders collection.
Order ord = new Order { OrderDate = DateTime.Now };
cust.Orders.Add(ord);
// Delete an existing Order.
Order ord0 = cust.Orders[0];
// Removing it from the table also removes it from the Customer’s list.
db.Orders.DeleteOnSubmit(ord0);
// Ask the DataContext to save all the changes.
db.SubmitChanges();
Dim db As New Northwnd("…\Northwnd.mdf")
Dim cust As Customer = _
(From c In db.Customers _
Where c.CustomerID = "ALFKI" _
Select c) _
.First()
' Change the name of the contact.
cust.ContactName = "New Contact"
' Create and add a new Order to Orders collection.
Dim ord As New Order With {.OrderDate = DateTime.Now}
cust.Orders.Add(ord)
' Delete an existing Order.
Dim ord0 As Order = cust.Orders(0)
' Removing it from the table also removes it from
' the Customer’s list.
db.Orders.DeleteOnSubmit(ord0)
' Ask the DataContext to save all the changes.
db.SubmitChanges()
При вызове SubmitChanges LINQ to SQL автоматически создает и выполняет команды SQL, которые необходимы, чтобы передать ваши изменения обратно в базу данных.
Замечание
Это поведение можно переопределить с помощью собственной пользовательской логики, как правило, с помощью хранимой процедуры. Дополнительные сведения см. в разделе "Обязанности разработчика в переопределении поведения по умолчанию".
Разработчики, использующие Visual Studio, могут использовать реляционный конструктор объектов для разработки хранимых процедур для этой цели.