Utilizando Strings e GUIDs como primary keys

Quem trabalha com bancos de dados sabe que não só de campos inteiros são criadas as chaves primárias. Por
isso, este post vai demonstrar como utilizar propriedades string ou GUID (global unique identifier) como
chaves primárias de nossas tabelas quando trabalhamos com o Entity Framework.

Leia mais »

Construindo camadas de acesso a dados – Parte IV – Padrão “Find or Create”

Continuando a série de posts sobre camadas de acesso a dados (se vc não sabe do que estou falando clique aqui: Camadas de Acesso a Dados). Existe um padrão que comumente utilizamos e que não fazemos ideia de que este realmente é um padrão documentado e utilizado por muitos, este é o padrão “Find or Create”.

Este padrão consiste da característica de: buscar um determinado dado na fonte de dados e, se o mesmo não for encontrado, então fazer a sua inclusão. Pode parecer simples, mas é um recurso bastante comum que utilizamos no nosso dia.

Leia mais »

Entity Framework – Carregando dados relacionados

Existem três abordagens diferentes que podemos utilizar para realizar o load de dados relacionados entre entidades. Essas três abordagens atingem os mesmos resultados, mas existem diferenças entre elas. Tais diferenças fazem com que cada abordagem seja melhor empregada em uma situação diferente das demais.

Não acredito que escolher uma das três abordagens e usá-la em todos os casos seja vantajoso. Acredito que o ideal é conhecer o funcionamento de cada uma das técnicas e reconhecer quando utilizar cada uma delas.

clip_image002

Leia mais »

Entity Framework 5 (Internals)

Neste post gostaria de descrever alguns procedimentos importantes para execução de queries via Entity Framework 5. Acredito que a explicação do funcionamento e da existência destes procedimentos pode ajudar na resolução de cenários mais avançados e no entendimento do funcionamento do Entity Framework.

Unicorn-Sugar-Skull

Cold e Warm Queries

A primeira vez que uma query é executada, o Entity Framework executa muito trabalho para carregar e validar o modelo de dados utilizado.

Leia mais »

Um modelo arquitetural…

Nos últimos tempos tenho recebido algumas perguntas de como modelo meus projetos, quais design patterns utilizo e como divido minha aplicação em camadas. Estas perguntas possuem apenas uma resposta: depende do caso.

Cada aplicação merece um modelo arquitetural diferente do outro. Cada aplicação exige diferentes design patterns. Cada aplicação funciona de um jeito. Nenhuma aplicação é igual a outra, assim como os dedos das mãos não são iguais.

Mas, como esta pergunta não possui uma resposta certa ou errada, gostaria de demonstrar um modelo arquitetural que me agrada bastante. Este modelo mescla alguns design patterns e alguns princípios de projetos orientados a objetos. A arquitetura da aplicação é a demonstrada abaixo.

architecture

Leia mais »

HasPrecision – Definindo a precisão de campos decimais.

Uma tarefa comum, quando trabalhamos com sistemas financeiros (ou matemáticos), é a necessidade de lidar com a precisão de casas decimais de nossos campos numéricos. Muitas vezes, neste tipo de sistema, o uso de apenas duas casas decimais não é suficiente para armazenar toda a precisão numérica dos valores utilizados. E o Entity Framework fornece recursos para que trabalhemos com diferentes precisões numéricas em campos decimais.

numbers

Leia mais »

Entity Framework Power Tools

Já ouviu falar do Entity Framework Power Tools? Como assim não?!?!?!

O Entity Framework Power Tools é um pacote de extensão criado para auxiliar na criação do seu modelo de dados utilizando os novos recursos da DbContext API. A instalação do Entity Framework Power Tools funciona tanto para o Microsoft Visual Studio 2010 quanto para o Microsoft Visual Studio 2012, o próprio pacote de instalação é o mesmo para ambas IDEs.

Leia mais »

Transações

Transações são necessárias quando realizamos um conjunto de operações em um determinado recursos distribuído (banco de dados, serviço  de mensageria, serviço de gerenciamento de arquivos, etc) e queremos garantir a completude deste conjunto de operações ao seu término, evitando que qualquer possível erro durante a execução do conjunto de operações deixe os recursos distribuídos inconsistentes.

cjta_wstran1

Leia mais »

Entity Framework – Desabilitando o tracking de entidades

Existem cenários nos quais temos de executar consultas sem que as entidades sejam controladas pelo tracking do Entity Framework.

Este cenário é comum quando executamos consultas que retornam uma quantidade grande de registros para leitura dos dados sem que a sua edição seja necessária, como exemplo a composição de um grid ou o retorno de um serviço. Para estas abordagens é apenas necessária a apresentação dos dados, executando da forma mais rápida possível e com o menor consumo de recursos possível, sem que o Entity Framework acompanhe os estados das instâncias construídas.

Leia mais »