Aracılığıyla paylaş


LINQ to SQL ile Yapabilecekleriniz

LINQ to SQL, SQL geliştiricisi olarak bekleyebileceğiniz tüm temel özellikleri destekler. Bilgileri sorgulayabilir, tablolardan bilgi ekleyebilir, güncelleştirebilir ve silebilirsiniz.

Seçme

Seçme (projeksiyon), yalnızca kendi programlama dilinizde bir LINQ sorgusu yazıp sonuçları almak için bu sorguyu yürüterek elde edilir. LINQ to SQL, tüm gerekli işlemleri bildiğiniz gerekli SQL işlemlerine çevirir. Daha fazla bilgi için bkz . LINQ to SQL.

Aşağıdaki örnekte, Londra'dan gelen müşterilerin şirket adları konsol penceresinde alınır ve görüntülenir.

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

Ekleme

BIR SQL Insertyürütmek için, oluşturduğunuz nesne modeline nesneleri ekleyin ve üzerinde çağrısı SubmitChanges yapın DataContext.

Aşağıdaki örnekte, kullanılarak tabloya Customers InsertOnSubmityeni bir müşteri ve müşteri hakkındaki bilgiler eklenir.

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

Güncelleştirme

Bir Update veritabanı girdisine önce öğeyi alın ve doğrudan nesne modelinde düzenleyin. Nesneyi değiştirdikten sonra veritabanını SubmitChanges güncelleştirmek için çağrısı DataContext yapın.

Aşağıdaki örnekte, Londra'dan gelen tüm müşteriler alınmaktadır. Ardından şehrin adı "Londra" olan "Londra - Metro" olarak değiştirilir. Son olarak, SubmitChanges değişiklikleri veritabanına göndermek için çağrılır.

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

Siliniyor

Bir Delete öğeye ait olduğu koleksiyondan öğeyi kaldırın ve değişikliği işlemek için öğesini çağırın SubmitChanges DataContext .

Not

LINQ to SQL, art arda silme işlemlerini tanımaz. Üzerinde kısıtlamalar bulunan bir tablodaki satırı silmek istiyorsanız bkz . Nasıl yapılır: Veritabanından Satırları Silme.

Aşağıdaki örnekte, sahip olduğu CustomerID 98128 müşteri veritabanından alınır. Ardından, müşteri satırının alındığını onayladıktan sonra, DeleteOnSubmit bu nesneyi koleksiyondan kaldırmak için çağrılır. Son olarak, SubmitChanges silme işlemini veritabanına iletmek için çağrılır.

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

Ayrıca bkz.