Temple Coding

  • Home
  • Open Source
  • Sobre
    • Livros que estou lendo
    • Sobre
RSS

Tornando o acesso a dados simples com o Simple.Data

Posted on 16/08/2011 by vintem
No commentsLeave a comment

Recentemente eu precisei fazer um trabalho que era bem simples do ponto de vista de acesso a dados. Era algo como ler arquivos textos e salvar os dados em uma base de dados SQL Server. Simples assim.

Se tratando de uma tarefa simples, usar um framework como o NHibernate iria tornar a tarefa mais complexa do que precisaria. Eu poderia também usar o bom e velho ADO.NET, mas estamos em 2011 e já temos 4 versões do .NET Framework. Acho que já passei dessa fase.

Ai lembrei que recentemente ouvi um episódio do Herding Code falando sobre um tal de Simple.Data.

E não é que o nome vem bem a calhar, o Simple.Data é realmente simples.

?View Code CSHARP
1
2
3
4
5
public Document Insert(Document newDocument)
{
    var db = new Database.Open();
    return db.Documents.Insert(newDocument);
}

E foi tudo isso que eu precisei escrever para abrir uma conexão com o banco, com base na minha string de conexão configurada no meu arquivo app.config e inserir um documento na tabela documentos.

O Simple.Data faz uso do tipo dynamic do C# 4 e portanto é necessário usar a versão 4 do .NET Framework.

O que aconteceu no código acima é o que o Simple.Data entendeu que deveria existir uma tabela chamada Documents no banco de dados e automaticamente iria inserir um registro nessa tabela mapeando os campos da tabela com as propriedades da classe Document (desde que esses tivessem os mesmos nomes).

Da mesma forma se eu quiser fazer uma busca basta fazer algo assim:

?View Code CSHARP
1
2
3
4
5
public IEnumerable All()
{
    var db = Database.Open();
    return  db.Documents.All().Cast();
}

Assim, estamos listando todos os registros da tabela Documents.

Agora imagine que essa tabela tenha um coluna chamada User e que, obviamente, o classe Document tem uma propriedade chamada User. Para fazer uma consulta filtrando pelo nome do usuario bastaria fazer assim:

?View Code CSHARP
1
2
var db = Database.Open();
Document document = db.Documents.FindByUser("nomedousuario");

Lindo! Dinamicamente o Simple.Data vai procurar um registro que tenha o campo User = “nomedousuario” e vai popular as propriedades da classe com as colunas da tabela que tenham o mesmo nome.

Por fim, um último exemplo, digamos que exista uma colunda/propriedade chamada Amount e você queira pegar os documentos com valor maior que 50. Veja como é simples:

?View Code CSHARP
1
2
var db = Database.Open();
IEnumerable documents = db.Documents.FindAll(db.Documents.Amount > 50).Cast();

Com certeza existe mais coisas no Simple.Data do que eu citei aqui, mas a idéia é que ele é bem simples e rápido. Usando o Nuget para adicionar o pacote, adicionar uma string de conexão chamada Simple.Data.Properties.Settings.DefaultConnectionString e pronto, você já consegue usar o Simple.Data.

Para saber mais visite o wiki do projeto no GitHub.

O código fonte usado nesse exemplo pode ser visto aqui.

Tweet
government,politics news,politics news,politics
Categories: .NET | Tags: dataaccess, simpledata
Notice: This work is licensed under a BY-NC-SA. Permalink: Tornando o acesso a dados simples com o Simple.Data
Globalização de validação do jQuery com o ASP.NET MVC 3
Criando Snippets para o Visual Studio 2010
  • Categorias

    • .NET (1)
    • ASP.NET (1)
    • ASPNET MVC (15)
    • Blog (1)
    • Controle de Versões (2)
    • Desenvolvimento (10)
    • Java (1)
    • JavaScript (2)
    • jQuery (1)
    • Leitura (5)
    • Ruby (2)
    • Ruby on Rails (1)
    • Sem categoria (23)
    • Testes (4)
  • Language

    • English
    • Português
  • Tags

    agilidade asp.net asp.net mvc asp.net vc automapper blog code templates controle de versoes css dataaccess dependency injection ebook encoding eventos excecoes firebug git globalizacao hibernate iis ironruby jasypt java javascript jquery json leitura less mvccontrib qcon rails ruby selenium simpledata snippet stored procedures structuremap tdc templates testes testes integrados visualstudio vraptor windsor
© Temple Coding. Proudly Powered by WordPress | Nest Theme by YChong