EF noobとして、開発用コンピュータにインストールしたMySql Server 5.6でEntity Framework 6 Code Firstを使用しようとしています。MySql Connector EF6
私は非常に小さなテストコンソールプロジェクトを作成しました。私はNuGetパッケージを追加しました:
- EntityFramework 6.0.2
- をMySql.Data は
- MySql.Data.Entities.EF6
を私のApp.configファイルは、次のようになります。
<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"></provider>
</providers>
</entityFramework>
Aは2つのクラスを有する。
あるMyContext:
public class MyContext : DbContext
{
public MyContext(DbConnection connection)
: base(connection, true)
{
}
public DbSet<MyEntity> MyEntities { get; set; }
}
MyEntity:
public class MyEntity
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
}
私の主な方法は次のようになります。私はそれを実行すると
static void Main(string[] args)
{
using (MySqlConnection conn = new MySqlConnection("Server=127.0.0.1;Database=calibrationtest;Uid=calibration;Pwd=*******"))
{
using (MyContext context = new MyContext(conn))
{
context.MyEntities.Add(new MyEntity()
{
Name = "1234"
});
context.SaveChanges();
}
}
}
私はSystem.NotSupportedExceptionを得る:
Unable to determine the provider name for provider factory of type
'MySql.Data.MySqlClient.MySqlClientFactory'. Make sure that the
ADO.NET provider is installed or registered in the application config
MySql.Data.Myを追加しようとしましたApp.configファイルにSqlClient.MySqlClientFactory:
<provider invariantName="MySql.Data.MySqlClient.MySqlClientFactory" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data"></provider>
しかし、その後、私はEntity.Coreバグに到着:私は間違って
The 'Instance' member of the Entity Framework provider type
'MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.8.3.0,
Culture=neutral, PublicKeyToken=c5687fc88969c44d' did not return an object
that inherits from 'System.Data.Entity.Core.Common.DbProviderServices'.
何をしているのですか?私はNuGetパッケージ(MySql.DataとMySql.Data.Entities.EF6)
を削除しようとした
EDIT
は、それから私は、新しいバージョンdirectly from MySqlをインストールし、現在上記のテストコードが正常に実行されますか?
これは私のコードでは何も変わりません。私は私がこの問題をどのように回避したかを編集しました。 – smerlung