none
EntiFramework RRS feed

  • 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
    quarta-feira, 15 de fevereiro de 2017 15:05

Respostas

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 banco 

    GTSA vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel

    quarta-feira, 15 de fevereiro de 2017 16:08
  • 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; }
        }

    quarta-feira, 15 de fevereiro de 2017 17:14
  • 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&lt;/strong&gt; &lt;br/&gt; &lt;em&gt;System Analyst / Software Developer&lt;/em&gt; &lt;br/&gt; &lt;img &lt;/p&gt; &lt;/div&gt;

    quarta-feira, 15 de fevereiro de 2017 17:30
  • 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:  @{

    quarta-feira, 15 de fevereiro de 2017 17:50
  • posta o codigo do seu controller e da sua View

    Diego Almeida Barreto&lt;/strong&gt; &lt;br/&gt; &lt;em&gt;System Analyst / Software Developer&lt;/em&gt; &lt;br/&gt; &lt;img &lt;/p&gt; &lt;/div&gt;

    quarta-feira, 15 de fevereiro de 2017 19:02
  • 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>
    

    quarta-feira, 15 de fevereiro de 2017 19:07
  • 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&lt;/strong&gt; &lt;br/&gt; &lt;em&gt;System Analyst / Software Developer&lt;/em&gt; &lt;br/&gt; &lt;img &lt;/p&gt; &lt;/div&gt;

    quarta-feira, 15 de fevereiro de 2017 19:32
  • 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
    quarta-feira, 15 de fevereiro de 2017 19:37
  • qual versão do MVC ?

    Diego Almeida Barreto&lt;/strong&gt; &lt;br/&gt; &lt;em&gt;System Analyst / Software Developer&lt;/em&gt; &lt;br/&gt; &lt;img &lt;/p&gt; &lt;/div&gt;

    quarta-feira, 15 de fevereiro de 2017 19:56
  • a MVC 5 uso visual studio 2013 professional estou criando um projeto as.net web aplication > Empty > Marquei a opção MVC
    quarta-feira, 15 de fevereiro de 2017 20:19
  • 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
    quarta-feira, 15 de fevereiro de 2017 21: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
    quarta-feira, 15 de fevereiro de 2017 22:26