Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
LINQ to SQL поддерживает все ключевые возможности, которые вы ожидаете в качестве разработчика SQL. Вы можете запрашивать сведения, вставлять, обновлять и удалять сведения из таблиц.
Выбор
Выбор (проекция) достигается путем простого написания запроса LINQ на собственном языке программирования, а затем выполнения этого запроса для получения результатов. LINQ to SQL преобразует все необходимые операции в необходимые операции SQL, с которыми вы знакомы. Дополнительные сведения см. в разделе LINQ to SQL.
В следующем примере имена компаний из Лондона извлекаются и отображаются в окне консоли.
// Northwnd inherits from System.Data.Linq.DataContext.
Northwnd nw = new Northwnd(@"northwnd.mdf");
// or, if you are not using SQL Server Express
// Northwnd nw = new Northwnd("Database=Northwind;Server=server_name;Integrated Security=SSPI");
var companyNameQuery =
from cust in nw.Customers
where cust.City == "London"
select cust.CompanyName;
foreach (var customer in companyNameQuery)
{
Console.WriteLine(customer);
}
' Northwnd inherits from System.Data.Linq.DataContext.
Dim nw As New Northwnd("c:\northwnd.mdf")
' or, if you are not using SQL Server Express
' Dim nw As New Northwnd("Database=Northwind;Server=dschwart7;Integrated Security=SSPI")
Dim companyNameQuery = _
From cust In nw.Customers _
Where cust.City = "London" _
Select cust.CompanyName
For Each customer In companyNameQuery
Console.WriteLine(customer)
Next
Вставка
Чтобы выполнить SQL Insert, просто добавьте объекты в созданную модель и вызовите SubmitChanges на DataContext.
В следующем примере новый клиент и сведения о клиенте добавляются в Customers таблицу с помощью InsertOnSubmit.
// Northwnd inherits from System.Data.Linq.DataContext.
Northwnd nw = new Northwnd(@"northwnd.mdf");
Customer cust = new Customer();
cust.CompanyName = "SomeCompany";
cust.City = "London";
cust.CustomerID = "98128";
cust.PostalCode = "55555";
cust.Phone = "555-555-5555";
nw.Customers.InsertOnSubmit(cust);
// At this point, the new Customer object is added in the object model.
// In LINQ to SQL, the change is not sent to the database until
// SubmitChanges is called.
nw.SubmitChanges();
' Northwnd inherits from System.Data.Linq.DataContext.
Dim nw As New Northwnd("c:\northwnd.mdf")
Dim cust As New Customer With {.CompanyName = "SomeCompany", _
.City = "London", _
.CustomerID = 98128, _
.PostalCode = 55555, .Phone = "555-555-5555"}
nw.Customers.InsertOnSubmit(cust)
' At this point, the new Customer object is added in the object model.
' In LINQ to SQL, the change is not sent to the database until
' SubmitChanges is called.
nw.SubmitChanges()
Обновление
Чтобы Update внести запись в базу данных, сначала извлеките элемент и измените его напрямую в объектной модели. После изменения объекта вызовите SubmitChanges на DataContext, чтобы обновить базу данных.
В следующем примере извлекаются все клиенты из Лондона. Затем имя города изменяется с "Лондон" на "Лондон - Метро". Наконец, SubmitChanges вызывается для отправки изменений в базу данных.
Northwnd nw = new Northwnd(@"northwnd.mdf");
var cityNameQuery =
from cust in nw.Customers
where cust.City.Contains("London")
select cust;
foreach (var customer in cityNameQuery)
{
if (customer.City == "London")
{
customer.City = "London - Metro";
}
}
nw.SubmitChanges();
Dim nw As New Northwnd("c:\northwnd.mdf")
Dim cityNameQuery = _
From cust In nw.Customers _
Where cust.City.Contains("London") _
Select cust
For Each customer In cityNameQuery
If customer.City = "London" Then
customer.City = "London - Metro"
End If
Next
nw.SubmitChanges()
Удаление
Для Delete элемента удалите элемент из коллекции, к которой он принадлежит, а затем вызовите SubmitChanges на DataContext, чтобы зафиксировать изменение.
Замечание
LINQ to SQL не распознает операции каскадного удаления. Если вы хотите удалить строку в таблице с ограничениями, см. статью "Практическое руководство. Удаление строк из базы данных".
В следующем примере клиент, имеющий CustomerID из 98128, извлекается из базы данных. Затем, после подтверждения получения строки клиента, вызывается DeleteOnSubmit, чтобы удалить этот объект из коллекции. Наконец, вызывается SubmitChanges, чтобы передать удаление в базу данных.
Northwnd nw = new Northwnd(@"northwnd.mdf");
var deleteIndivCust =
from cust in nw.Customers
where cust.CustomerID == "98128"
select cust;
if (deleteIndivCust.Count() > 0)
{
nw.Customers.DeleteOnSubmit(deleteIndivCust.First());
nw.SubmitChanges();
}
Dim nw As New Northwnd("c:\northwnd.mdf")
Dim deleteIndivCust = _
From cust In nw.Customers _
Where cust.CustomerID = 98128 _
Select cust
If deleteIndivCust.Count > 0 Then
nw.Customers.DeleteOnSubmit(deleteIndivCust.First)
nw.SubmitChanges()
End If