O que é o Microsoft NET Framework 

 

A mais recente versão da tecnologia funciona bem com o Microsoft NET Framework 4 e Visual Studio 2010 Aqui está um pouco do que há de novo (junto com a forma de mover seus aplicativos para EF6).

Entity Framework

Entity Framework 6 (EF6) introduz um monte de mudanças, mas a maior delas é a separação da EF do Microsoft NET Framework. EF é agora um pacote autônomo você adicionar em uma base projeto a projeto através NuGet (consulte “Atualizando para o Entity Framework 6“). Esta última versão do EF podem ser adicionados aos projetos do NET Framework 4 (e posterior) e usado no Visual Studio 2010 ou posterior. Essa gama inclui, provavelmente, você; se isso não acontecer, EF6 lhe dá uma razão convincente para atualizar. Nesta coluna eu vou olhar para alguns dos novos recursos que trabalham na NET Framework 4 (e ignorar o que só funciona no NET Framework 4.5, guardando para colunas posteriores).

NET Framework

Coisas de graça

Entre as razões que você deve atualizar para EF6 são as características que você começa sem qualquer trabalho de sua parte. Por exemplo, com EF6 você deve achar que em aplicações com grande quantidade de mesas e relações definidas, o seu contexto objetos aberto mais rapidamente. Você também deve ser melhor isolamento de queda de conexão (pelo menos, se a queda é transitória e não permanente – nada vai ajudar lá). EF6 também gera SQL mais rápido a partir de consultas LINQ do que antes (embora seja o mesmo SQL que está sendo gerada como em versões anteriores do EF, para que o seu acesso a dados atual não ser mais rápido ou mais lento).

 

EF6 também elimina um bug pouco frequente, mas irritante: Antes EF6, se você tivesse uma classe em seu aplicativo que duplicado o nome de uma de suas classes EF, EF iria reclamar o nome da entidade era ambígua, mesmo que as duas classes estavam em diferentes namespaces. EF6 agora procura por suas classes de entidade dentro de seu namespace.

 

Stored Procedures para CUD

EF6Code-First desenvolvedores desenvolvedores algo usando o designer visual sempre tiveram: a capacidade de usar procedimentos armazenados quando você chamar SaveChanges para executar as atualizações das tabelas representadas pelas classes de entidade. Mas não tenha muitas esperanças: ainda não há nada no código do primeiro desenvolvimento como a importação função do designer visual prevê usando procedimentos armazenados (nem Ferramentas EF Poder gerar qualquer suporte para procedimentos armazenados, pelo menos a partir de Beta 4).

 

Se os seus procedimentos armazenados têm os nomes e parâmetros corretos, você pode dizer EF6 de usar procedimentos armazenados com apenas uma linha de código no método DbContext OnModelCreating. O exemplo a seguir dirige EF de usar procedimentos armazenados para todas as atualizações feitas em uma entidade produto:

 

protegido OnModelCreating override void (DbModelBuilder ModelBuilder)

{

modelBuilder.Entity <Product> () MapToStoredProcedures ().;

Esta característica dá-lhe uma enorme quantidade de flexibilidade: você pode fazer qualquer coisa que você quer ou precisa no procedimento armazenado, em vez de apenas a planície de idade atualizações EF oferece.

entity framework 6

 

No entanto, você provavelmente não vai ser capaz de fugir com a única linha de código. Para que isso funcione, EF assume muito sobre os procedimentos armazenados. Para começar, o meu exemplo, EF assume Tenho três procedimentos armazenados chamados Product_Update, Product_Insert e Product_Delete. O problema é que, se você estiver interessado neste recurso, você já está usando procedimentos armazenados para gerenciar seus Criar / update / delete (CUD) atividades, e estes não são os nomes de seus procedimentos armazenados. Felizmente, você pode especificar os nomes dos procedimentos armazenados que você está usando com um pouco mais de código. O código a seguir define os nomes dos procedimentos armazenados para CUD spAddProduct, spUpdateProduct e spDeleteProduct:

 

modelBuilder.Entity <Product> (). MapToStoredProcedures (sp =>

{

sp.Insert (proc => proc.HasName (“spAddProduct”));

sp.Update (proc => proc.HasName (“spUpdateProduct”));

sp.Delete (proc => proc.HasName (“spDeleteProduct”));

});

Você vai notar que eu configurei as três operações CUD. Se você usar um procedimento armazenado para qualquer operação CUD, você deve usar procedimentos armazenados para as três operações CUD. Isso significa que se você usar MapToStoredProcedures e não especificar um procedimento armazenado para a operação de exclusão, EF6 vai à procura de um procedimento armazenado com o nome padrão.

 

Você também pode personalizar os parâmetros passados ​​para os procedimentos armazenados e os valores devolvidos a partir deles. Não é incomum, por exemplo, para um procedimento armazenado que insere novas linhas para retornar a chave gerada pelo banco de dados para a linha recém-adicionado. Este é todo o código necessário para estender a minha definição para especificar que o meu procedimento armazenado retorna um resultado chamado id que está mapeado para a propriedade ProductId no meu objeto de produto:

 

modelBuilder.Entity <Product> (). MapToStoredProcedures (sp =>

{

sp.Insert (proc => proc.HasName (“spAddProduct”)

.Result (R => r.ProductID, “id”));

Código semelhante me permite personalizar os parâmetros do procedimento armazenado é passado, aceitar o resultado RowsAffected e link para tabelas relacionadas. Como você pode imaginar, este nível de personalização pode resultar em um monte de código. Uma vez que você tenha escrito o código que define procedimentos armazenados de uma tabela, você vai querer colocar esse código em algum lugar onde você pode integrar em qualquer aplicação. Esta á a Introdução ao Entity Framework 6.0 do Microsoft NET Framework.

 

Clique aqui e confira mais sobre o NET Framework.

blogtecnoword

A tecnologia a um click

Olá cadastre seu email Gratuitamente para dicas:

Delivered by FeedBurner