0

Ich erhalte den Fehler 'Kann Metadaten nicht abrufen', wenn ich versuche, einen Controller für meine MVC 3-Anwendung zu erstellen (Razor - C# - Visual Studio 2012).Metadaten können nicht abgerufen werden - Entity Framework MVC Controller Erstellung

Ich habe einige Untersuchungen an dieser und anderen Seiten durchgeführt, um dies zu beheben. Was ich bisher getan ist:

  • Mapped Model-Klasse mit den exakt gleichen Felder wie die MYSQL Tabelle
  • hinzugefügt den [Key] Annotation
  • gelöscht Erstellt (System.ComponentModel.DataAnnotations verwenden). edmx Datei verschiedenen Zeiten
  • erneut gestartet VS 2012
  • Kopierte mein bestehendes Projekt in eine brandneue Lösung

Wahrscheinlich fehlt ich bin etwas, neu zu sein, um das .NET Framework insgesamt

Hier sind die Inhalte meiner Datei Web.config:

<?xml version="1.0" encoding="utf-8"?> 
<!-- 
    Para obtener más información sobre cómo configurar la aplicación de ASP.NET, visite 
    http://go.microsoft.com/fwlink/?LinkId=152368 
    --> 
<configuration> 
    <configSections> 
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> 

    <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> 
     <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" /> 
     <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" /> 
    </sectionGroup> 

    </configSections> 

    <system.web.webPages.razor> 
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
    <pages pageBaseType="System.Web.Mvc.WebViewPage"> 
     <namespaces> 
     <add namespace="System.Web.Mvc" /> 
     <add namespace="System.Web.Mvc.Ajax" /> 
     <add namespace="System.Web.Mvc.Html" /> 
     <add namespace="System.Web.Routing" /> 
     </namespaces> 
    </pages> 
    </system.web.webPages.razor> 

    <appSettings> 
    <add key="webpages:Version" value="1.0.0.0" /> 
    <add key="ClientValidationEnabled" value="true" /> 
    <add key="UnobtrusiveJavaScriptEnabled" value="true" /> 
    </appSettings> 
    <system.web> 
    <compilation debug="true" targetFramework="4.5"> 
     <assemblies> 
     <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 
     </assemblies> 
    </compilation> 
    <authentication mode="Forms"> 
     <forms loginUrl="~/Account/LogOn" timeout="2880" /> 
    </authentication> 
    <pages> 
     <namespaces> 
     <add namespace="System.Web.Helpers" /> 
     <add namespace="System.Web.Mvc" /> 
     <add namespace="System.Web.Mvc.Ajax" /> 
     <add namespace="System.Web.Mvc.Html" /> 
     <add namespace="System.Web.Routing" /> 
     <add namespace="System.Web.WebPages" /> 
     </namespaces> 
    </pages> 
    <httpRuntime targetFramework="4.5" /> 
    <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> 
    <!-- 
      If you are deploying to a cloud environment that has multiple web server instances, 
      you should change session state mode from "InProc" to "Custom". In addition, 
      change the connection string named "DefaultConnection" to connect to an instance 
      of SQL Server (including SQL Azure and SQL Compact) instead of to SQL Server Express. 
     --> 
    <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> 
    <system.webServer> 
    <validation validateIntegratedModeConfiguration="false" /> 
    </system.webServer> 
    <runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /> 
     <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0" /> 
     </dependentAssembly> 
    </assemblyBinding> 
    </runtime> 
    <entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework"> 
     <parameters> 
     <parameter value="v11.0" /> 
     </parameters> 
    </defaultConnectionFactory> 
    <providers> 
     <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6, Version=6.9.8.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"> 
     </provider> 
    </providers></entityFramework> 
<connectionStrings> 
    <add name="DeporteYaEntities" connectionString="metadata=res://*/DeporteYa.csdl|res://*/DeporteYa.ssdl|res://*/DeporteYa.msl;provider=MySql.Data.MySqlClient;provider connection string=&quot;server=localhost;user id=root;password=1234;database=deporteya&quot;" 
    providerName="System.Data.EntityClient" /> 
    <add name="usuario__DeporteYaEntities_" connectionString="Data Source=(localdb)\v11.0; Initial Catalog=usuario__DeporteYaEntities_-20160610143458; Integrated Security=True; MultipleActiveResultSets=True; AttachDbFilename=|DataDirectory|usuario__DeporteYaEntities_-20160610143458.mdf" 
    providerName="System.Data.SqlClient" /> 
</connectionStrings><system.data> 
    <DbProviderFactories> 
     <remove invariant="MySql.Data.MySqlClient" /> 
     <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.9.8.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" /> 
    </DbProviderFactories> 
    </system.data></configuration> 

Screenshot der genauen Fehler:

enter image description here

Wieder , jede Hilfe wird sehr geschätzt. Danke vielmals!

EDIT:

ich die Verbindungszeichenfolge in Web.config-Datei geändert haben, wie in this post zu vorgeschlagen:

connectionString="metadata=res://*/; 

Jetzt gibt es einen anderen Fehler:

'Unable to retrieve metadata for DeporteYa.Models.Usario. Unable to cast object of type 'System.Data.Entity.Core.Objects.ObjectContext' to 'System.Data.Objects.ObjectContext' 
+0

Update Code mit usuario Modell –

+0

Mögliche Duplikat von [MetadataException: Kann die angegebene Metadatenressource nicht laden] (http://stackoverflow.com/questions/689355/metadataexception-unable-to-load-the-specified-metadata-resource) – mohsen

+0

können Sie den 'usuario' posten Modell in deiner Frage? es würde uns sehr helfen –

Antwort

0

UPDATE:

Der Grund, warum Sie den 2. Fehler erleben Nachricht, nachdem Sie die Frage aktualisiert haben, weil EF6 nicht von MVC4 unterstützt wird .. so bezweifle ich, MVC3 wird es auch unterstützen.

Also dieses Problem zu beheben, werden Sie durch Nuget gehen müssen (das ist, wo ich nehme an, Sie EF an erster Stelle heruntergeladen), deinstallieren Sie EF6 und dann EF5 neu installieren

+0

Dies ist die korrekte Antwort. Ich war mir dessen nicht bewusst. Versucht, EF 6 und seine Abhängigkeiten zu deinstallieren, dann EF 5 zu installieren und den Tag in der Datei Web.config zu entfernen. Arbeitete perfekt. Vielen Dank!!!! –

+0

@JuanM du bist willkommen! froh, dass es geholfen hat! –

Verwandte Themen