none
Como instalar o Entity 4.1 no VS 2012 RRS feed

  • Pergunta

  • Como eu faço para instalar o Entity 4.1, usando NuGet ou outra coisa qualquer. Não consigo usar o DbContext em meu Visual 2012. Na minha versão o NuGet não tem a opção de instalar o Entity 4.1+
    quinta-feira, 15 de agosto de 2013 21:03

Todas as Respostas

  • No repositório oficial do Nuget a versão do EF é a 5.0 EntityFramework. Para instalar:

    No Solution Explorer:

    1) Clique com botão direito na Solução em que deseja instalar:

    2) Manage Nuget Packages

    3) Vai abrir uma janela de gerenciamento, vá em Online

    4) Na caixa de busca digite EntityFramework

    5) A primeira opção será o que você deseja.

    Se este estiver com um sinalizador de ícone verde, você já tem instalado. Então aconselho que vá em Installed packages, repita a busca e desinstale, depois repita o procedimento de instalação. Geralmente o package manager buga algumas coisas quando desinstalamos pacotes que tenham muitos dependentes, pode ser o seu caso.

    Se não conseguir resolver o problema sugiro dar mais informações como exception, tipo de projeto, etc.

    sexta-feira, 16 de agosto de 2013 01:40
  • Então, isso eu já fiz e aparece um tick verde nessa opção, dizendo que já foi instalado. Vou ver a versão e é a 5.0.0. Bem, o que acontece é que eu não consigo usar o DbContext

    public class Contexto: DbContext
        {
            public DbContext<TB_Afastado> AfastadoContexto { get; set; }
        }

    Dá esse erro:

    The non-generic type 'System.Data.Entity.DbContext' cannot be used with type arguments

    sexta-feira, 16 de agosto de 2013 11:32
  • Tools Library Package Manager > Package Manager Console, feito isso irá abrir um console para digitação. 

    Pegue o código no NuGet cole nesse console e de um Enter, automaticamente já será atualizado o seu Entity. 

    Se ajudou marca como resposta. 

    Vlws

    sexta-feira, 16 de agosto de 2013 12:33
  • Bom dia,

    Você está usando errado. A classe de DbContext faz o trabalho de negociação com o banco de dados, mas você está tentando usá-la para incluir Entidades nesse contexto. Você deve substituir seu código por este:

    public class Contexto: DbContext
    {
      public DbSet<TB_Afastado> AfastadoContexto { get; set; }
    }

    Um DbSet representa as entidades que você possui dentro do seu contexto. Aconselho dar uma olhada aqui: Entity Framework Development Workflows.

    sexta-feira, 16 de agosto de 2013 12:46
  • Tools Library Package Manager > Package Manager Console, feito isso irá abrir um console para digitação. 

    Pegue o código no NuGet cole nesse console e de um Enter, automaticamente já será atualizado o seu Entity. 

    Se ajudou marca como resposta. 

    Vlws

    O problema dele não está relacionado mais com a instalação como ele disse antes. Há um erro na codificação, ele está utilizando o DbContext de maneira errada.
    sexta-feira, 16 de agosto de 2013 12:49
  • Instalei o Entity Framework 5.0.0, pelo menos é o que parece, mas quando vou adicionar uma referência a versão que aparece é a 4.0.0. Usei o NuGet para instalar, mas acho que não rolou. Como eu faço?

    Ok, Felipe, refiz dessa forma, mas não consigo o Namespace System.Data.Entity.DbContext, isso pq a versão do meu Frame é 4.0.0 e não 5.0.0 como eu achava ter instalado.

    sexta-feira, 16 de agosto de 2013 12:52
  • Você poderia dar mais informações sobre sua solução? É ASP.NET? Poderia disponibilizar o trecho de configuração do Web.config que tem o EntityFramework por favor?
    sexta-feira, 16 de agosto de 2013 13:11
  • Sim, é asp.net(Web Forms)

    Nem mexi no meu web.config

    Abaixo meu web.config

    <?xml version="1.0" encoding="utf-8"?>
    <!--
      For more information on how to configure your ASP.NET application, please visit
      http://go.microsoft.com/fwlink/?LinkId=169433
      -->
    <configuration>
      <configSections>
        <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
        <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
      </configSections>
      <connectionStrings>
        <add name="DefaultConnection" providerName="System.Data.SqlClient" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-MP-20130814185609;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-MP-20130814185609.mdf" />
      </connectionStrings>
      <system.web>
        <compilation debug="true" targetFramework="4.5" />
        <httpRuntime targetFramework="4.5" />
        <pages>
          <namespaces>
            <add namespace="System.Web.Optimization" />
          </namespaces>
          <controls>
            <add assembly="Microsoft.AspNet.Web.Optimization.WebForms" namespace="Microsoft.AspNet.Web.Optimization.WebForms" tagPrefix="webopt" />
          </controls>
        </pages>
        <authentication mode="Forms">
          <forms loginUrl="~/Account/Login.aspx" timeout="2880" />
        </authentication>
        <profile defaultProvider="DefaultProfileProvider">
          <providers>
            <add name="DefaultProfileProvider" type="System.Web.Providers.DefaultProfileProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" applicationName="/" />
          </providers>
        </profile>
        <membership defaultProvider="DefaultMembershipProvider">
          <providers>
            <add name="DefaultMembershipProvider" type="System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" />
          </providers>
        </membership>
        <roleManager defaultProvider="DefaultRoleProvider">
          <providers>
            <add name="DefaultRoleProvider" type="System.Web.Providers.DefaultRoleProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" applicationName="/" />
          </providers>
        </roleManager>
        <sessionState mode="InProc" customProvider="DefaultSessionProvider">
          <providers>
            <add name="DefaultSessionProvider" type="System.Web.Providers.DefaultSessionStateProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" />
          </providers>
        </sessionState>
      </system.web>
      <entityFramework>
        <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
          <parameters>
            <parameter value="v11.0" />
          </parameters>
        </defaultConnectionFactory>
      </entityFramework>
    </configuration>

    sexta-feira, 16 de agosto de 2013 13:14
  • Eu fiz um compare e está praticamente igual ao meu funcional. Aconselho que faça o seguinte:

    Arquivo:

    1) Verifique se eu arquivo com o DbContext possui using System.Data.Entity; ele deve parece com isso:

    using System;
    using System.Collections.Generic;
    using System.Data.Entity;
    using System.Linq;
    using System.Web;
    
    namespace WebApplication1.Model
    {
        public class Context : DbContext
        {
           /*Entidades*/
        }
    }

    Projeto:

    1) Verifique se há em References da sua solução o assembly System.Data.Entity.

    2) Caso não exista desistale todos os pacotes relacionados a EntityFrameWork no Nuget e instale apena o EntityFramework 5.0

    Espero que solucione.

    Att,


    sexta-feira, 16 de agosto de 2013 13:26
  • Como eu disse, tudo está ok, só que em Reference deveria aparecer a versão do Entity 5.0.0 e está vindo 4.0.0. Fiz a instalação do Entity pelo NuGet e nada aconteceu. Uma coisa eu não fiz e acho não ser necessário, mas vou fazer que é reiniciar o VS2012.

    using System;
    using System.Collections.Generic;
    using System.Data.Entity;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace Listagem.Classes
    {
        public class Contexto: DbContext
        {
            public DbSet<TB_Afastado> AfastadoContexto { get; set; }
    
            public DbSet<TB_Dupla> DuplaContexto { get; set; }
        }
    }

    • Editado pnet sexta-feira, 16 de agosto de 2013 16:20
    sexta-feira, 16 de agosto de 2013 16:18