Udostępnij za pośrednictwem


Co można zrobić za pomocą funkcji LINQ to SQL

LinQ to SQL obsługuje wszystkie kluczowe możliwości, których można oczekiwać jako deweloper SQL. Możesz wykonywać zapytania dotyczące informacji oraz wstawiać, aktualizować i usuwać informacje z tabel.

Wybieranie

Wybranie (projekcja) jest osiągane przez napisanie zapytania LINQ we własnym języku programowania, a następnie wykonanie tego zapytania w celu pobrania wyników. LinQ to SQL sam tłumaczy wszystkie niezbędne operacje na niezbędne operacje SQL, które znasz. Aby uzyskać więcej informacji, zobacz LINQ to SQL.

W poniższym przykładzie nazwy firm klientów z Londynu są pobierane i wyświetlane w oknie konsoli.

// 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

Wstawianie

Aby wykonać kod SQL Insert, wystarczy dodać obiekty do utworzonego modelu obiektów i wywołać SubmitChanges metodę DataContextna .

W poniższym przykładzie nowy klient i informacje o kliencie Customers są dodawane do tabeli przy użyciu polecenia 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()

Aktualizowanie

Aby utworzyć Update wpis bazy danych, najpierw pobierz element i edytuj go bezpośrednio w modelu obiektów. Po zmodyfikowaniu obiektu wywołaj metodę SubmitChanges , DataContext aby zaktualizować bazę danych.

W poniższym przykładzie są pobierane wszyscy klienci z Londynu. Następnie nazwa miasta zostanie zmieniona z "Londyn" na "Londyn - Metro". Na koniec jest wywoływana funkcja SubmitChanges w celu wysłania zmian do bazy danych.

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()

Usuwanie

W Delete elemencie usuń element z kolekcji, do której należy, a następnie wywołaj SubmitChanges element , DataContext aby zatwierdzić zmianę.

Uwaga

LinQ to SQL nie rozpoznaje operacji usuwania kaskadowego. Jeśli chcesz usunąć wiersz w tabeli, która ma ograniczenia, zobacz Instrukcje: usuwanie wierszy z bazy danych.

W poniższym przykładzie klient, który ma CustomerID 98128 element , jest pobierany z bazy danych. Następnie po potwierdzeniu, że wiersz klienta został pobrany, jest wywoływany w DeleteOnSubmit celu usunięcia tego obiektu z kolekcji. SubmitChanges Na koniec jest wywoływana w celu przekazania usunięcia do bazy danych.

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

Zobacz też