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 »

Publicidade

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 »

Entity Framework – Atribuir valores antes dos dados serem salvos

Olá,

Um cenário bastante comum, que encontro nos fóruns, é a necessidade de registrar alguma informação na entidade antes dela ser salva na base de dados, via Entity Framework.

Dados como: “data de inclusão”, “data da última atualização”, “registro de log”, “usuário que realizou a alteração” e outros, são dados pertinentes para o funcionamento da aplicação e que estão atrelados ao evento de inclusão e atualização dos dados na base de dados.

duck9ph

Leia mais »

DbEntityEntry – Capturando os dados originais de uma entidade

Olá,

Hoje vamos discutir sobre um recurso muito útil do Entity Framework 5, o DbEntityEntry. Instâncias desta classe fornecem acesso a informações das entidades controladas pelo DbContext.

Mas que tipo de informação é gerenciada pela DbEntityEntry?

Com uma instância ativa de DbEntityEntry podemos recuperar os dados originais de uma entidade (aqueles mesmos dados de quando recuperamos a instância do banco de dados), podemos atualizar a instância com os dados ativos na base de dados, podemos forçar a execução das rotinas de validação, alterar o status de uma entidade, além de outras ações.

Leia mais »

Entity Framework – Como atualizar apenas um campo?

Olá,

O Entity Framework, como todos sabem, é uma ferramenta de mapeamento objeto-relacional. E realiza ações como seleção, inclusão, atualização e exclusão de dados. Dentre estas simples operações podemos ter controle de grande parte de seu funcionamento.

Assim como podemos, em uma query, selecionar apenas um conjunto de campos que queremos recuperar do banco de dados, podemos indicar que queremos apenas atualizar um conjunto de campos, não toda a estrutura da entidade sob edição.

Leia mais »