LINQ para iniciantes 9 - CRUD Simples em LINQ e C#

watch_later 2 de jul de 2013

Como criar um CRUD simples usando LINQ?

Passo 1: Criar a entidade-classe customer
Como primeiro passo, criamos uma entidade da classe cliente, como mostrado no código de snippet abaixo.

[Table(Name = "Customer")]
public class clsCustomerEntity
{
    private int _CustomerId;
    private string _CustomerCode;
    private string _CustomerName;
    [Column(DbType = "nvarchar(50)")]
    public string CustomerCode
    {
        set
        {
            _CustomerCode = value;
        }
        get
        {
           return _CustomerCode;
        }
    }
    [Column(DbType = "nvarchar(50)")]
    public string CustomerName
    {
        set
        {
            _CustomerName = value;
        }
        get
        {
            return _CustomerName;
        }
    }
    [Column(DbType = "int", IsPrimaryKey = true,IsDbGenerated=true)]
    public int CustomerId
    {
        set
        {
            _CustomerId = value;
        }
        get
        {
            return _CustomerId;
        }
    }
}

Passo 2: Inserindo o Contexto para LINQ
Criar DataContext
A primeira coisa a fazer é criar um objeto DataContext usando a string de conexão.

var objContext = new DataContext(strConnectionString);

Setar dados para o Insert
Depois de criar a conexão usando o objeto DataContext, o próximo passo é criar o objeto de entidade do cliente e definir os dados para a propriedade do objeto.

clsCustomerEntity objCustomerData = new clsCustomerEntity();
objCustomerData.CustomerCode = txtCustomerCode.Text;
objCustomerData.CustomerName = txtCustomerName.Text;

Fazer um atualização em memória
Nós, então,criamos uma atualização em memória usando o objeto de entidade usando o método InsertOnSubmit.

objContext.GetTable<clsCustomerEntity>().InsertOnSubmit(objCustomerData);

Fazendo o commit físico
Finalmente, faremos um commit físico para o banco de dados real. Por favor note, até que nós chamarmos SubmitChanges (), os dados não está está realmente no banco de dados.

objContext.SubmitChanges();

Código final do LINQ
Abaixo está o código final LINQ:

var objContext = new DataContext(strConnectionString);
clsCustomerEntity objCustomerData = new clsCustomerEntity();
objCustomerData.CustomerCode = txtCustomerCode.Text;
objCustomerData.CustomerName = txtCustomerName.Text;
objContext.GetTable<clsCustomerEntity>().InsertOnSubmit(objCustomerData);
objContext.SubmitChanges();

Passo 3: Atualizando dados usado LINQ
Vamos para a próxima operação de banco de dados, ou seja, de atualização.
Criar DataContext
Abaixo está o código final LINQ:

var objContext = new DataContext(strConnectionString);

Selecione o objeto customer(cliente) que você deseja atualizar
Obter o objeto LINQ que deseja atualizar usando a consulta LINQ:

var MyQuery = from objCustomer in objContext.GetTable<clsCustomerEntity>()
where objCustomer.CustomerId == Convert.ToInt16(txtCustomerId.Text)
select objCustomer;

No final devemos setar os dados do objeto que queremos atualizar
Para fazer a atualização final devemos chamar o metódo SubmitChanges() , como no exemplo abaixo.

clsCustomerEntity objCustomerData = (clsCustomerEntity)MyQuery.First<clsCustomerEntity>();
objCustomerData.CustomerCode = txtCustomerCode.Text;
objCustomerData.CustomerName = txtCustomerName.Text;
objContext.SubmitChanges();

O Código final usado para Atualizar Dados
Abaixo está como nossa query LINQ para atualizar dados deve ficar:

var objContext = new DataContext(strConnectionString);
var MyQuery = from objCustomer in objContext.GetTable<clsCustomerEntity>()
where objCustomer.CustomerId == Convert.ToInt16(txtCustomerId.Text)
select objCustomer;
clsCustomerEntity objCustomerData = (clsCustomerEntity)MyQuery.First<clsCustomerEntity>();
objCustomerData.CustomerCode = txtCustomerCode.Text;
objCustomerData.CustomerName = txtCustomerName.Text;
objContext.SubmitChanges();

Passo 4: Deletar dados usando LINQ
Vamos para a próxima operação de banco de dados, Excluir.
DeleteOnSubmit
Eu não irei explicar novamente as etapas atentiores para o post não ficar repetitivo como a criação de um contexto de dados e selecionar um objeto LINQ, ambos foram explicados na seção anterior. Para excluir um objeto in-memory, precisamos chamar DeleteOnSubmit (), e para excluir do banco de dados, precisamos SubmitChanges ().

objContext.GetTable<clsCustomerEntity>().DeleteOnSubmit(objCustomerData);
objContext.SubmitChanges();

Passo 5: Select e Read usando LINQ
Agora vamos para a etapa final, a seleção e leitura do objeto LINQ por filtros. Abaixo está um trecho de código que mostra como disparar a consulta LINQ e definir o valor do objeto para a interface do usuário ASP.NET.

var objContext = new DataContext(strConnectionString);
var MyQuery = from objCustomer in objContext.GetTable<clsCustomerEntity>()
where objCustomer.CustomerId == Convert.ToInt16(txtCustomerId.Text)
select objCustomer;
clsCustomerEntity objCustomerData = (clsCustomerEntity)MyQuery.First<clsCustomerEntity>();
txtCustomerCode.Text = objCustomerData.CustomerCode;
txtCustomerName.Text = objCustomerData.CustomerName;

Bom galera , ficamos por aqui a abaixo estão os links das postagens da mesma série , espero que seja útil ,qualquer dúvida comente , ou mande email para contato@virtualbase.com.br

Lista de Postagens da série LINQ PARA INICIANTES :