2017-03-28 43 views
0

我正在嘗試安裝現有項目以使用實體框架。我從來沒有使用過它,並希望通過個人項目來學習它。使用Mysql安裝實體框架6 - 代碼優先

我有許多項目的解決方案,所有相關的。登錄是我想要查詢的地方。模型是模型的地方。 Main是程序啓動的地方。

我已經將EntityFramework安裝到MySolution.Model上。

這是模型中的app.config:

<connectionStrings> 
    <add name="ALDatabaseContext" providerName="MySql.Data.MySqlClient" 
     connectionString="server=localhost;port=3306;database=aldatabase;uid=root;password=root"/> 
</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> 

我的背景很簡單

public class ALDatabaseContext : DbContext 
{ 
    public virtual DbSet<User> Users { get; set; } 
} 

但是,當我打電話背景下,從登錄我得到一個異常:

附加信息:未找到具有不變名稱「System.Data.SqlClient」的ADO.NET提供程序的實體框架提供程序。確保提供程序在應用程序配置文件的'entityFramework'部分中註冊。

我缺少什麼?

+0

您是否使用實體框架嚮導? –

+0

Mm nop,我已經使用Nuget安裝了實體框架,並配置爲mysql頁面。 –

+0

您是否添加了對「MySql.Data.Entity.EF6」的引用?確保被複制到'bin'文件夾。 –

回答

0

好吧,我設法讓它工作(但我不喜歡這個解決方案)。

我已經加入這個主(我的解決方案的入口點)的app.config:

<connectionStrings> 
<add name="ALDatabaseContext" providerName="MySql.Data.MySqlClient" connectionString="server=localhost;port=3306;database=aldatabase;uid=root;password=root" /> 
</connectionStrings> 



<entityFramework> 
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" /> 
<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, Version=6.9.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"></provider> 
</providers> 


</entityFramework> 


<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> 

而且還參考模型(實體框架相關的DLL和MySQL的DLL的所有dll )在登錄和主要項目。