我開發了一個Entity Framework 6項目,使用MySQL
作爲數據庫。在我的Windows系統上,項目正在運行。現在我試圖在Linux機器上移動該項目。 爲了運行該項目,我將MySQL
dll添加到GAC並進行機器配置。所有需要的DLL也位於項目文件夾中。當實體框架訪問數據庫,我收到以下錯誤:Mono Entity Framework 6 MySQL
System.Configuration.ConfigurationErrorsException: Failed to find or load the registered .Net Framework Data Provider.
at System.Data.Common.DbProviderFactories.GetFactory (System.Data.DataRow providerRow) [0x00000] in <filename unknown>:0
<?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>
<connectionStrings>
<add name="CashDeskServerContext" providerName="MySql.Data.MySqlClient" connectionString="server=localhost;
port=3306;database=ServerContext;uid=root;password=password;Convert Zero Datetime=True"/>
<add name="AuditLogContext" providerName="MySql.Data.MySqlClient" connectionString="server=localhost;
port=3306;database=AuditLogContext;uid=root;password=password;Convert Zero Datetime=True"/>
</connectionStrings>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
<providers>
<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices,
MySql.Data.Entity.EF6" />
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices,
EntityFramework.SqlServer" />
</providers>
</entityFramework>
</configuration>
任何想法?
THX 邁克爾
我不確定Mono完全支持EF 6但一般來說這是一個配置問題或版本問題。你可以告訴我們你的App.Config來查看配置嗎? –
嗨Alberto,我將app.config添加到我的問題中... – Michael
請注意,您正在引用Mono中通常不支持的EntityFramework.SqlServer。刪除此零件,請 –