Partager via


Que faire avec LINQ to SQL

LINQ to SQL prend en charge toutes les fonctions clés que recherchent les développeurs SQL. Vous pouvez demander des informations et insérer, mettre à jour et supprimer des informations dans des tables.

Sélection

Pour effectuer une sélection (projection) il vous suffit d'écrire une requête LINQ dans votre propre langage de programmation, puis d'exécuter cette requête pour récupérer les résultats. LINQ to SQL traduit lui-même toutes les opérations requises dans les opérations SQL nécessaires que vous connaissez. Pour plus d'informations, consultez LINQ to SQL.

Dans l'exemple suivant, les noms de société des clients de Londres sont récupérés et affichés dans la fenêtre de console.

' 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
// 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);
}

Insertion

Pour exécuter une Insert SQL, il vous suffit d'ajouter des objets au modèle objet que vous avez créé et d'appeler SubmitChanges sur le DataContext.

Dans l'exemple suivant, un nouveau client et des informations le concernant sont ajoutés à la table Customers à l'aide de InsertOnSubmit.

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

Mise à jour

Pour Update une entrée d'une base de données, récupérez d'abord l'élément et modifiez-le directement dans le modèle objet. Après avoir modifié l'objet, appelez SubmitChanges sur le DataContext pour mettre la base de données à jour.

Dans l'exemple suivant, tous les clients de Londres sont récupérés. Le nom de ville "London" est ensuite remplacé par "London - Metro". Enfin, SubmitChanges est appelée pour envoyer les modifications à la base de données.

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

Suppression

Pour Delete un élément, supprimez-le de la collection à laquelle il appartient, puis appelez SubmitChanges sur le DataContext pour valider la modification.

RemarqueRemarque

LINQ to SQL ne reconnaît les opérations de suppression en cascade.Si vous souhaitez supprimer une ligne dans une table comportant des contraintes sur cette suppression, consultez Procédure : supprimer des lignes de la base de données (LINQ to SQL).

Dans l'exemple suivant, le client dont le CustomerID est 98128 est extrait de la base de données. Ensuite, après confirmation de la récupération de la ligne client, DeleteOnSubmit est appelé pour supprimer cet objet de la collection. Enfin, SubmitChanges est appelé pour envoyer la suppression à la base de données.

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

Voir aussi

Concepts

Modèle objet LINQ to SQL

Mise en route (LINQ to SQL)

Autres ressources

Guide de programmation (LINQ to SQL)