No Package Maneger Console digite:
PM> Install-Package EntityFramework
pressione
enter para que o mesmo seja adicionado ao seu projeto.
Bom, como a ideia é trabalharmos com Code-First ou seja
criar nossas entidades através do nosso código devemos incluir duas classes
POCO que representarão nosso relacionamento Many-to-Many.
Classe Menu.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace MVC.Models
{
public class Menu
{
public int Id { get; set; }
public string Descricao { get; set; }
public bool Ativo { get; set; }
public virtual ICollection<Tela> Telas { get; set; }
}
}
Classe Tela.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace MVC.Models
{
public class Tela
{
public int Id { get; set; }
public string Descricao { get; set; }
public bool Ativo { get; set; }
public string URL { get; set; }
public virtual ICollection<Menu> Menus { get; set; }
}
}
Após isso você deve criar uma classe Contexto onde o Code-First
vai entender o que deve ser feito no banco de dados.
Esta classe herda de DbContext que faz parte da biblioteca
do Entity, sem isso ele não vai entender o que deverá ser feito automaticamente
por ele.
Perceba que os nomes das propriedades devem ter um s no
final, isso ocorre devido ao padrão da língua inglesa pois esta representando
uma lista de Menu e outra de Tela.
Abaixo criamos um método OnModelCreating que entre outras
coisas serve também para remover a pluralização dos nomes de nossas entidades,
ou seja, quando utilizarmos o Code-First ele vai entender que ele deve criar as
tabelas no banco sem o “s” no final.
Classe Context.cs
using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Data.Entity.ModelConfiguration.Conventions;
using System.Linq;
using System.Web;
namespace MVC.Models
{
public class Context:DbContext
{
public DbSet<Menu> Menus { get; set; }
public DbSet<Tela> Telas { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}
}
}
No Web.Config crie sua String de Conexão
<connectionStrings>
<add name="Context" providerName="System.Data.SqlClient" connectionString="data
source=(Local);initial catalog=MVC;integrated
security=True;MultipleActiveResultSets=True" />
</connectionStrings>
Perceba que o nome recebe name=”Context” o nome de nossa
classe Context, deve ser assim para que funcione.
Agora começa a brincadeira!
No Package Maneger Console você deve digitar PM> Enable-Migrations
Isso vai criar um repositório chamado Migrations em seu
projeto, onde todas as migrações serão adicionadas. Isso são classes que são
geradas automaticamente contendo o script para criar o DataBase e as Tabelas no
banco de acordo com seu código.
Após isso digite
PM>
Add-Migration AddInitialCreate
Isto vai adicionar as classes mencionadas acima, e para
finalizar digite
PM>
Update-Database
Para que as alterações sejam efetivadas, gerando as tabelas
no banco de dados.
Abra o banco de dados e você vai perceber que ele criou as tabelas Menu, Tela e MenuTela que é
a tabela que vai conter os Id´s de cada uma gerando um
relacionamento Many-To-Many.
Até a próxima!
Nenhum comentário:
Postar um comentário