Usuário com melhor resposta
Asp.Net MVC 4 - Criar Tabelas em um Único Banco!

Pergunta
-
Olá,
Estou seguindo as indicações desse link http://msdn.microsoft.com/pt-br/library/jj129537.aspx que traz um artigo muito bacana sobre como criar projetos MVC, estou surpreso com o Visual Studio, pois facilita bastante o trabalho.
Porém, como eu faço para criar outros tabelas no mesmo banco, pois seguindo esse artigo, quando crio outros models exemplo:
Cliente
Fornecedor
Produto
Quando rodo e insiro os dados, cada model tá criando um novo banco de dados, gostaria que tudo ficasse em um único banco de dados, criando apenas as tabelas para cada Model.
Já cheguei a criar um banco e setar no WebConfig dessa forma:
<connectionStrings> <add name="ConnDB" connectionString="Data Source=C:\Raiz\csharp\SistemaVendas\SistemaVendas\App_DataArtigo.sdf Artigo.sdf" providerName="System.Data.SqlServerCe.4.0"/></connectionStrings>
O primeiro model criado, funciona beleza, porém quando sigo para os outros, tenho um erro quando o código vai fazer a leitura do Controller das outras classes, por exemplo a classe produto dá erro nessa parte:
public ActionResult Index() { return View(db.Produtos.ToList()); }
Se alguém puder ajudar, agradeço muito! :)
Respostas
-
Olá,
Vc precisa colocar todas as models no mesmo contexto, dessa forma:
public class ConnDB : DbContext { public DbSet<Produto> Produtos { get; set; } public DbSet<Fornecedor> Fornecedores { get; set; } public DbSet<Cliente> Clientes { get; set; } }
Lembre-se apenas que seu contexto deve ter o mesmo nome da sua conexão, então
<add name="ConnDB ..../> public class ConnDB : DbContext
Att,
- Marcado como Resposta CassioroX segunda-feira, 17 de junho de 2013 18:01
Todas as Respostas
-
Olá,
Vc precisa colocar todas as models no mesmo contexto, dessa forma:
public class ConnDB : DbContext { public DbSet<Produto> Produtos { get; set; } public DbSet<Fornecedor> Fornecedores { get; set; } public DbSet<Cliente> Clientes { get; set; } }
Lembre-se apenas que seu contexto deve ter o mesmo nome da sua conexão, então
<add name="ConnDB ..../> public class ConnDB : DbContext
Att,
- Marcado como Resposta CassioroX segunda-feira, 17 de junho de 2013 18:01
-
Opa, muito obrigado.
Deixa eu ver se eu entendi... no caso, eu vou deletar os contextos:
ClienteContext.cs
ProdutoContext.cs
FornecedorContext.csE criar um ConnDB e deixar o "contexto" único?
E como os contextos também estavam declarados no Controller, eu mudaria todos os Controllers dessa forma:
Sendo que antes em cada Controller ficava assim:
Antes
private ClienteContext db = new ClienteContext();Depois
private ConnDB db = new ConnDB();
-
-
Opa, muito obrigado.
Deixa eu ver se eu entendi... no caso, eu vou deletar os contextos:
ClienteContext.cs
ProdutoContext.cs
FornecedorContext.csE criar um ConnDB e deixar o "contexto" único?
E como os contextos também estavam declarados no Controller, eu mudaria todos os Controllers dessa forma:
Sendo que antes em cada Controller ficava assim:
Antes
private ClienteContext db = new ClienteContext();Depois
private ConnDB db = new ConnDB();
Olá,
Isso mesmo. Caso esteja usando o Scaffold com Entity Framework, terá que deletar os controles gerados por ele e mandar gerar de novo, dessa vez usando seu novo contexto (ConnDB).
Att,