2017-03-01 22 views
3

MYSQL 5.6.12 server.IでEF 6.1.3を使用しています。EFを実行して使用し、データモデルを検索して生成し、アプリケーション構成ファイル 私たちは次のエラーを取得するビューを生成しようとすると、誰もこれを修正する方法についてのポインターを与えることができますか?MysqlとEF6でビューを生成中にエラーが発生しました

System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.Data.Entity.Core.MetadataException: Schema specified is not valid. Errors: 
BitDatabaseModel.edmx(7,8) : error 0152: No Entity Framework provider found for the ADO.NET provider with invariant name 'MySql.Data.MySqlClient'. Make sure the provider is registered in the 'entityFramework' section of the application config file. See http://go.microsoft.com/fwlink/?LinkId=260882 for more information. 
    at System.Data.Entity.Core.Metadata.Edm.StoreItemCollection.Loader.ThrowOnNonWarningErrors() 
    at System.Data.Entity.Core.Metadata.Edm.StoreItemCollection.Loader.LoadItems(IEnumerable`1 xmlReaders, IEnumerable`1 sourceFilePaths) 
    at System.Data.Entity.Core.Metadata.Edm.StoreItemCollection.Loader..ctor(IEnumerable`1 xmlReaders, IEnumerable`1 sourceFilePaths, Boolean throwOnError, IDbDependencyResolver resolver) 
    at System.Data.Entity.Core.Metadata.Edm.StoreItemCollection.Init(IEnumerable`1 xmlReaders, IEnumerable`1 filePaths, Boolean throwOnError, IDbDependencyResolver resolver, DbProviderManifest& providerManifest, DbProviderFactory& providerFactory, String& providerInvariantName, String& providerManifestToken, Memoizer`2& cachedCTypeFunction) 
    at System.Data.Entity.Core.Metadata.Edm.StoreItemCollection..ctor(IEnumerable`1 xmlReaders) 
    --- End of inner exception stack trace --- 
    at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) 
    at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) 
    at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, StackCrawlMark& stackMark) 
    at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes) 
    at System.Activator.CreateInstance(Type type, Object[] args) 
    at Microsoft.DbContextPackage.Utilities.EdmxUtility.GetMappingCollectionEF6(Assembly ef6Assembly, String& containerName) 
    at Microsoft.DbContextPackage.Handlers.OptimizeContextHandler.OptimizeEdmx(String inputPath) 

App.configを

<?xml version="1.0" encoding="utf-8"?> 
<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 --> 
    </configSections> 
    <startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> 
    </startup> 
    <entityFramework codeConfigurationType="MySql.Data.Entity.MySqlEFConfiguration, MySql.Data.Entity.EF6"> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework"> 
     <!--defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework"--> 
     <parameters> 
     <parameter value="mssqllocaldb" /> 
     </parameters> 
    </defaultConnectionFactory> 
    <providers> 
     <clear/> 
     <!--The clear tag must be before the provider you want to use--> 
     <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6"></provider> 
     </providers> 
    </entityFramework> 
    <connectionStrings> 
    <add name="BitDatabaseEntities" connectionString="metadata=res://*/BitDatabaseModel.csdl|res://*/BitDatabaseModel.ssdl|res://*/BitDatabaseModel.msl;provider=MySql.Data.MySqlClient;provider connection string=&quot;server=username;user id=username;password=password;persistsecurityinfo=True;database=aci_dev&quot;" providerName="System.Data.EntityClient" /> 
    </connectionStrings> 
    <runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
     <assemblyIdentity name="MySql.Data" publicKeyToken="c5687fc88969c44d" culture="neutral" /> 
     <bindingRedirect oldVersion="0.0.0.0-6.8.8.0" newVersion="6.8.8.0" /> 
     </dependentAssembly> 
    </assemblyBinding> 
    </runtime> 
<system.data> 
    <DbProviderFactories> 
     <remove name="MySQL Data Provider" 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.8.3.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" /> 
    </DbProviderFactories> 
    </system.data></configuration> 

web.configファイルのdllの

<entityFramework codeConfigurationType="MySql.Data.Entity.MySqlEFConfiguration, MySql.Data.Entity.EF6"> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework"> 
     <parameters> 
     <parameter value="mssqllocaldb" /> 
     </parameters> 
    </defaultConnectionFactory> 
    <providers> 
     <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> 
     <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6" /> 
    </providers> 
    </entityFramework> 

スクリーンショット:

enter image description here

+0

http://stackoverflow.com/questions/18455747/no-entity-framework-provider-foundの重複-for-the-ado-net-provider-invariant-name MySql.Data.MySqlClientのADO.netプロバイダをインストールしましたか? –

+0

/ADO.netプロバイダがインストールされているかどうかを確認する方法/ – user3508811

+0

これを確認してください:http://stackoverflow.com/a/42542277/5081328 –

答えて

0

何EFのパワーツールを再インストールについて。最新のリリースがあることを確認してください。


更新: これは、バインディングの参照がプロジェクトに必要なバージョンへのバージョンを更新修正されない場合。

Entity Framework 6.0を削除し、NuGetを使用しているMySQLアダプタを削除します。次に、関連するすべてのアセンブリが自動的に追加されるので、MySQL.Data.Entitiesを必ず追加してください。

+0

私はEFを削除し、MySQL.Data.Entitiesとその依存関係のみをインストールして最新バージョンを再インストールしようとしました – user3508811

0

パッケージのリダイレクト先が6.8.8.0のみであることに気付きました バージョン番号を増やして、より新しいバージョンを追加してください。

0

マシンの設定が空でないことを確認する必要があります。存在する場合は、コードを貼り付けて、ターゲットフレームワークのマシン設定で修正します。おそらく

<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.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" /> 
    </DbProviderFactories> 
    </system.data> 

プラスあなたの接続文字列は、このproviderNameでを使用する必要があります....

<add name="ftw" connectionString="xxx" providerName="MySql.Data.MySqlClient" /> 
関連する問題