segunda-feira, 27 de janeiro de 2014

Reformulação do blog

Olá,

O blog foi reformulado e agora está de cara nova, espero que com o visual mais "clean" agrade aos visitantes e frequentadores.

=]

quinta-feira, 9 de janeiro de 2014

Trabalhando com Entity Framework Code-First em uma biblioteca de classes (Class Library)

Olá, provavelmente muitos de nós desenvolvedores em algum momento começamos a querer separar as responsabilidades em nossos projetos , mas em vista da dificuldade de retirar o modelo Code-First da pasta Model nativa do projeto MVC, alguns desenvolvedores optam por deixar assim mesmo e não ter dor de cabeça com os dataAnnotations, porém para a separação ser feita é muito simples, siga as etapas abaixo:

Crie uma  class Library em sua solution, e referêncie a dll do Entity Framework em seu projeto e também System.ComponentModel.DataAnnotations;.

Após ter feito isso vamos criar a classe Produto.cs

public partial class Produto
    {
        public int Id { get; set; }
        public string Name { get; set; }
    }

   [MetadataTypeAttribute(typeof(Produto.Metadata))]
   public partial class Produto
   {
       internal sealed class Metadata
       {
           private Metadata() { } // classes de Metadata não devem ser instanciadas

           // Adicione os metadados de validação
           [Required]
           [StringLength(60)]
           public string Name;
       }
   }

Note que criamos a classe como partial, com um simples conhecimento de programação orientada a objetos sabemos como funciona uma classe partial não é mesmo?
Obs: Só separamos para não sujarmos a primeira partial do Produto com os Annotations,  e setar tudo que for metadado na outra partial, mas isso fica a critério de vocês, optei por esta forma.



Vamos agora ao nosso Context
public class Context : DbContext
    {
        public DbSet<Produto> Produto { get; set; }
    }

Nesta parte não há nada de diferente então é só executar e ver o resultado:


É isso =]