Operazioni eseguibili con LINQ to SQLWhat You Can Do With LINQ to SQL

InLINQ to SQLLINQ to SQL sono supportare tutte le funzionalità principali usate dagli sviluppatori SQL.LINQ to SQLLINQ to SQL supports all the key capabilities you would expect as a SQL developer. È possibile creare query per ottenere informazioni ed eseguire operazioni di inserimento, aggiornamento ed eliminazione di dati dalle tabelle.You can query for information, and insert, update, and delete information from tables.

SelezioneSelecting

Per eseguire una selezione (proiezione) è sufficiente scrivere una query LINQLINQ nel proprio linguaggio di programmazione e successivamente eseguirla per recuperare i risultati.Selecting (projection) is achieved by just writing a LINQLINQ query in your own programming language, and then executing that query to retrieve the results. InLINQ to SQLLINQ to SQL tutte le operazioni indispensabili vengono convertite nelle operazioni SQL necessarie con cui si ha dimestichezza.LINQ to SQLLINQ to SQL itself translates all the necessary operations into the necessary SQL operations that you are familiar with. Per altre informazioni, vedere LINQ to SQL.For more information, see LINQ to SQL.

Nell'esempio seguente i nomi di società dei clienti dell'area londinese vengono recuperati e visualizzati nella finestra della console.In the following example, the company names of customers from London are retrieved and displayed in the console window.

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

InserimentoInserting

Per eseguire un'operazione InsertSQL, aggiungere semplicemente oggetti al modello a oggetti creato e chiamare SubmitChanges su DataContext.To execute a SQL Insert, just add objects to the object model you have created, and call SubmitChanges on the DataContext.

Nell'esempio seguente vengono aggiunti un nuovo cliente e informazioni sul cliente alla tabella Customers usando InsertOnSubmit.In the following example, a new customer and information about the customer is added to the Customers table by using 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()

UpdatingUpdating

Per eseguire un'operazione Update per una voce del database, recuperare innanzitutto tale voce e modificarla direttamente nel modello a oggetti.To Update a database entry, first retrieve the item and edit it directly in the object model. Dopo avere modificato l'oggetto, chiamare SubmitChanges su DataContext per aggiornare il database.After you have modified the object, call SubmitChanges on the DataContext to update the database.

Nell'esempio seguente vengono recuperati tutti i clienti dell'area londinese.In the following example, all customers who are from London are retrieved. Il nome della città viene quindi modificato da "London" in "London - Metro",Then the name of the city is changed from "London" to "London - Metro". infine viene chiamato SubmitChanges per inviare le modifiche al database.Finally, SubmitChanges is called to send the changes to the database.

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

DeletingDeleting

Per eseguire un'operazione Delete per un elemento, rimuovere l'elemento dalla raccolta a cui appartiene, quindi chiamare SubmitChanges su DataContext per eseguire il commit della modifica.To Delete an item, remove the item from the collection to which it belongs, and then call SubmitChanges on the DataContext to commit the change.

Nota

LINQ to SQLLINQ to SQL non riconosce operazioni di eliminazione a catena. does not recognize cascade-delete operations. Se si desidera eliminare una riga in una tabella contenente vincoli, vedere procedura: eliminare righe dal Database.If you want to delete a row in a table that has constraints against it, see How to: Delete Rows From the Database.

Nell'esempio seguente il cliente con il codice CustomerID 98128 viene recuperato dal database.In the following example, the customer who has CustomerID of 98128 is retrieved from the database. Quindi, dopo la conferma che la riga del cliente è stata recuperata, viene chiamato DeleteOnSubmit per rimuovere quell'oggetto dalla raccolta.Then, after confirming that the customer row was retrieved, DeleteOnSubmit is called to remove that object from the collection. Infine viene chiamato SubmitChanges per inoltrare l'operazione di eliminazione al database.Finally, SubmitChanges is called to forward the deletion to the 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

Vedere ancheSee Also

Guida per programmatoriProgramming Guide
Modello a oggetti LINQ to SQLThe LINQ to SQL Object Model
IntroduzioneGetting Started