Wat u kunt doen met LINQ naar SQL
LINQ naar SQL ondersteunt alle belangrijke mogelijkheden die u als SQL-ontwikkelaar zou verwachten. U kunt gegevens opvragen en gegevens invoegen, bijwerken en verwijderen uit tabellen.
Selecteren
Selecteren (projectie) wordt bereikt door alleen een LINQ-query in uw eigen programmeertaal te schrijven en vervolgens die query uit te voeren om de resultaten op te halen. LINQ naar SQL zelf vertaalt alle benodigde bewerkingen in de benodigde SQL-bewerkingen waarmee u bekend bent. Zie LINQ naar SQL voor meer informatie.
In het volgende voorbeeld worden de bedrijfsnamen van klanten uit Londen opgehaald en weergegeven in het consolevenster.
// 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
Invoegen
Als u een SQL Insert
wilt uitvoeren, voegt u alleen objecten toe aan het objectmodel dat u hebt gemaakt en roept SubmitChanges u het DataContextaan.
In het volgende voorbeeld worden een nieuwe klant en informatie over de klant aan de Customers
tabel toegevoegd met behulp van 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()
Bijwerken
Voor Update
een databasevermelding haalt u eerst het item op en bewerkt u het rechtstreeks in het objectmodel. Nadat u het object hebt gewijzigd, roept SubmitChanges u de DataContext database aan om de database bij te werken.
In het volgende voorbeeld worden alle klanten uit Londen opgehaald. Dan wordt de naam van de stad gewijzigd van "Londen" in "Londen - Metro". SubmitChanges Ten slotte wordt aangeroepen om de wijzigingen naar de database te verzenden.
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()
Verwijderen
Als u een item wilt Delete
, verwijdert u het item uit de verzameling waartoe het behoort en roept SubmitChanges DataContext u de wijziging vervolgens aan om de wijziging door te voeren.
Notitie
LINQ naar SQL herkent trapsgewijze verwijderingsbewerkingen niet. Als u een rij in een tabel met beperkingen wilt verwijderen, raadpleegt u Instructies: Rijen uit de database verwijderen.
In het volgende voorbeeld wordt de klant opgehaald CustomerID
98128
uit de database. Vervolgens wordt, nadat u hebt bevestigd dat de rij van de klant is opgehaald, DeleteOnSubmit aangeroepen om dat object uit de verzameling te verwijderen. Ten slotte SubmitChanges wordt aangeroepen om de verwijdering door te sturen naar de database.
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