Partilhar via


O que você pode fazer com o LINQ to SQL

O LINQ to SQL suporta todos os principais recursos que você esperaria como um desenvolvedor SQL. Você pode consultar informações e inserir, atualizar e excluir informações de tabelas.

Seleção

A seleção (projeção) é obtida apenas escrevendo uma consulta LINQ em sua própria linguagem de programação e, em seguida, executando essa consulta para recuperar os resultados. O próprio LINQ to SQL traduz todas as operações necessárias nas operações SQL necessárias com as quais você está familiarizado. Para obter mais informações, consulte LINQ to SQL.

No exemplo a seguir, os nomes de empresas de clientes de Londres são recuperados e exibidos na janela do console.

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

Inserção

Para executar um SQL Insert, basta adicionar objetos ao modelo de objeto que você criou e chamar SubmitChanges o DataContext.

No exemplo a seguir, um novo cliente e informações sobre o cliente são adicionados à Customers tabela usando 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()

Atualização

Para Update uma entrada de banco de dados, primeiro recupere o item e edite-o diretamente no modelo de objeto. Depois de modificar o objeto, chame SubmitChanges o DataContext para atualizar o banco de dados.

No exemplo a seguir, todos os clientes que são de Londres são recuperados. Em seguida, o nome da cidade é mudado de "Londres" para "Londres - Metro". Finalmente, SubmitChanges é chamado para enviar as alterações para o banco de dados.

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

Eliminar

Para Delete um item, remova o item da coleção à qual ele pertence e, em seguida, chame SubmitChanges o DataContext para confirmar a alteração.

Nota

O LINQ to SQL não reconhece operações de exclusão em cascata. Se você quiser excluir uma linha em uma tabela que tenha restrições contra ela, consulte Como excluir linhas do banco de dados.

No exemplo a seguir, o cliente que tem CustomerID de é recuperado do banco de 98128 dados. Em seguida, depois de confirmar que a linha do cliente foi recuperada, DeleteOnSubmit é chamado para remover esse objeto da coleção. Finalmente, SubmitChanges é chamado para encaminhar a exclusão para o banco de dados.

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

Consulte também