Usuário com melhor resposta
EntiFramework

Pergunta
-
Pessoal estou com problema estou fazendo um sisteminha em C# webForm usando enti framework e mvc bom as telas esta tudo montada assim como as classe e controller, quando vou executar a pagina ele esta dando o seguinte erro na linha do método return db.Categorias.ToList();"
// // CategoriasLista // Retorna a lista de Categorias // // public List<Categoria> CategoriasLista() { using (var db = new NorthwindContext()) { return db.Categorias.ToList(); } }
using System; using System.Collections.Generic; using System.Linq; using System.Web; //----------------- using System.Data.Entity; using Capitulo04_Laboratorio.Models; namespace Capitulo04_Laboratorio.DAL { public class NorthwindContext: DbContext { private const string Conexao = @"Data Source=THACKA\SQLExpress;Initial Catalog=Northwind;Persist Security Info=True;User ID=sa;Password=sa"; public NorthwindContext() : base(Conexao) { } public List<Categoria> Categorias { get; set; } public List<Produto> Produtos { get; set; } } }
Esta dando o seguinte erro "An exception of type 'System.ArgumentNullException' occurred in System.Core.dll but was not handled in user code"- Editado CLAUDIO JOSE quarta-feira, 15 de fevereiro de 2017 15:06
Respostas
-
Claudio,
Verifica se no seu Web.Config que fica dentro da sua pasta Views, contém essas seções que referenciam o razor e o MVC.
Segue exemplo: https://github.com/andreluizsecco/TechNightMVC/blob/master/TechNightMVC/Views/web.config
Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!
André Secco
Microsoft MVP & MSDN Tech Advisor
Blog: http://andresecco.com.br
GitHub: http://github.com/andreluizsecco
Twitter: @andre_secco- Marcado como Resposta CLAUDIO JOSE quarta-feira, 15 de fevereiro de 2017 23:44
Todas as Respostas
-
Crie a string de conexão no Web.config e configure dessa forma seu dbContext:
public class NorthwindContext: DbContext { public NorthwindContext() : base("name=nomeQuesEstanaWebConfig") { } public DbSet<Categoria> Categorias { get; set; } public DbSet<Produto> Produtos { get; set; } }
Crie na sua classe com o método para retornar seus dados do bancoA vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel
- Sugerido como Resposta Diego de Almeida Barreto (Lewis) quarta-feira, 15 de fevereiro de 2017 16:19
-
Emtão fiz do jeito que falou e continua dando o erro olha:
web.config
<connectionStrings> <add name="stringConexao" providerName="System.Data.SqlClient" connectionString="Data Source=THACKA\SQLExpress;Initial Catalog=Northwind;Persist Security Info=True;User ID=sa;Password=sa"/> </connectionStrings>
Chadamada do construtor:
public class NorthwindContext: DbContext { public NorthwindContext() : base("name=stringConexao") { } public List<Categoria> Categorias { get; set; } public List<Produto> Produtos { get; set; } }
-
Claudio,
A string de conexão esta no webconfig da camada MVC ?
Esses dois caras aqui devem ser DbSets ...
muda isso :
public List<Categoria> Categorias { get; set; } public List<Produto> Produtos { get; set; }
para isso :
public DbSet<Categoria> Categorias { get; set; } public DbSet<Produto> Produtos { get; set; }
Diego Almeida Barreto</strong> <br/> <em>System Analyst / Software Developer</em> <br/> <img </p> </div>
-
Agora deu certo realmente tinha colocado errado é DBSet mesmo só que agora esta dando erro na views index olha o erro:
CS0103: O nome 'model' não existe no contexto atual
Erro de Origem:
Linha 1: @model IEnumerable<Capitulo04_Laboratorio.Models.Categoria> Linha 2: Linha 3: @{
-
-
essa meu controle
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; //------------- using Capitulo04_Laboratorio.Models; using Capitulo04_Laboratorio.DAL; namespace Capitulo04_Laboratorio.Controllers { public class CategoriaController : Controller { // GET: Categoria public ActionResult Index() { var db = new CategoriaDb(); var lista = db.CategoriasLista(); return View(lista); } } }
Minha view
@model IEnumerable<Capitulo04_Laboratorio.Models.Categoria> @{ ViewBag.Title = "Index"; } <h2>Categorias</h2> <table class="table"> <tr> <th> @Html.DisplayNameFor(model => model.Nome) </th> <th></th> </tr> @foreach (var item in Model) { <tr> <td> @Html.DisplayFor(modelItem => item.Nome) </td> <td> @Html.ActionLink("Edit", "Edit", new { id=item.CategoriaID }) | @Html.ActionLink("Details", "Details", new { id=item.CategoriaID }) | @Html.ActionLink("Delete", "Delete", new { id=item.CategoriaID }) </td> </tr> } </table>
-
Hummm,
Cara converte no controller para uma lista para ver no que da
public class CategoriaController : Controller { // GET: Categoria public ActionResult Index() { var db = new CategoriaDb(); var lista = db.CategoriasLista().ToList(); return View(lista); } }
Diego Almeida Barreto</strong> <br/> <em>System Analyst / Software Developer</em> <br/> <img </p> </div>
-
Continua dando o mesmo erro parece que razor não esta sendo inicializado por alguma maneira
- Editado CLAUDIO JOSE quarta-feira, 15 de fevereiro de 2017 19:53
-
-
-
Claudio,
Verifica se no seu Web.Config que fica dentro da sua pasta Views, contém essas seções que referenciam o razor e o MVC.
Segue exemplo: https://github.com/andreluizsecco/TechNightMVC/blob/master/TechNightMVC/Views/web.config
Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!
André Secco
Microsoft MVP & MSDN Tech Advisor
Blog: http://andresecco.com.br
GitHub: http://github.com/andreluizsecco
Twitter: @andre_secco- Marcado como Resposta CLAUDIO JOSE quarta-feira, 15 de fevereiro de 2017 23:44
-
Haha estou quase lá funcionou só que tive que tirar a linha que chama o @Style e e @Script
Consegui segui esse link abixo:
http://stackoverflow.com/questions/10951669/mvc-4-scripts-does-not-exist
- Editado CLAUDIO JOSE quarta-feira, 15 de fevereiro de 2017 23:13