Criando um repositório genérico para Entity Framework

Standard

Irei demonstrar aqui uma forma bem simples e rápida para implementarmos um repositório genérico com Entity Framework. A ideia de implementação será a mesma utilizada com Linq to SQL, ou seja, nosso repositório será responsável por realizar apenas quatro operações: Selecionar os dados, salvar, apagar e atualizar.

Vamos primeiramente criar uma interface para o repositório:

public interface IRepositorio
{
	void Atualiza();

	void Apaga<TEntidade>(TEntidade entidade) where TEntidade : class;

	void Salva<TEntidade>(TEntidade entidade) where TEntidade : class;

	IQueryable<TEntidade> Seleciona<TEntidade>() where TEntidade : class;
}

Continue reading

Criando um repositório genérico para Linq to SQL

Standard

Vou demonstra aqui uma forma bem rápida e produtiva para criarmos um repositório genérico com Linq to SQL. Basicamente devemos efetuar quatro operações básicas: Selecionar os dados, salvar, apagar e atualizar.

Vejamos como ficaria nossa interface para o repositório genérico:

public interface IRepositorio
{
   void Atualiza();

   void Apaga<TEntidade>(TEntidade entidade) where TEntidade : class;

   void Salva<TEntidade>(TEntidade entidade) where TEntidade : class;

   IQueryable<TEntidade> Seleciona<TEntidade>() where TEntidade : class;
}

Pegou a idéia com Generics? veja a implementação: Continue reading

Cria suas próprias coleções utilizando Iteration Pattern em C#

Standard

Antes de iniciarmos este artigo, é altamente recomendado que você saiba o que é, e como funciona a interface IEnumerable, localizada no namespace System.Collection. Com uma rápida explicação retirada do MSDN, podemos considerar um IEnumerable como:

“Exposes the enumerator, which supports a simple iteration over a non-generic collection.”

Ou seja, é uma interface que expõe o enumerador, e suporta uma iteração simples sobre uma coleção não genérica.

Ok, e o que seria esse “Iteration Pattern” ?

Iteration Pattern é um padrão de desenvolvimento muito utilizado em loops de repetições. É um padrão que viabiliza o acesso sequencial aos elementos de uma dada coleção, sem que seja necessário o conhecimento dos elementos subsequentes. Continue reading

Yoda Conditions com C#

Standard

Acredito que a maioria dos “developers” escreveria uma simples condição como demonstrado abaixo:

int varInt = 1;
if (varInt == 2){
//...
}

bool varBool = false;
if (varBool == true){
//...
}

O que há de errado? Na verdade não existe erro algum nos snippets acima, porém, considere os seguintes erros na digitação do código:

int varInt = 1;
if (varInt = 2){
//...
}

bool varBool = false;
if (varBool = true){
//...
}

Continue reading