GoogleでEntityFramework/ MySQLに関連するものが見つからないため、誰かがそれについて知っていることを期待しています。
10 に答える
リリースされました - .Net v6.5 用の MySQL コネクタを入手してください- これは [Entity Framework] をサポートしています
私はこれをずっと待っていましたが、サポートは基本的なものであり、db 相互作用のほとんどの基本的なシナリオで機能します。また、基本的な Visual Studio 統合も備えています。
UPDATE http://dev.mysql.com/downloads/connector/net/ バージョン 6.7 から、Connector/Net には Visual Studio 統合用の MySQL が含まれなくなりました。この機能は、MySQL Installer for Windows ( http://dev.mysql.com/tech-resources/articles/mysql-installer-for-windows.htmlを参照) を使用して入手可能な、MySQL for Visual Studio という別の製品で利用できるようになりました。
このテーマに関する私の投稿をチェックしてください。
MySQL は数日以内に EF に関するウェビナーを開催します...こちらをご覧ください: http://www.mysql.com/news-and-events/web-seminars/display-204.html
編集:そのウェビナーは現在http://www.mysql.com/news-and-events/on-demand-webinars/display-od-204.htmlにあります
これはMSと彼らが何を望んでいるかについてではありません。彼らは、他の人が「プロバイダー」をプラグインするための*オープンシステムを作成しました-postgresとsqliteにはそれがあります-mysqlはただ遅れています...しかし、興味のある人には朗報です。私もこれを探していて、MySqlコネクタが見つかりました/Net 6.0 にはそれがあります... ここで確認できます:
http://www.upfromthesky.com/blog/post/2009/03/24/MySql-Supports-the-Entity-Framework.aspx
MySQL のマッピング プロバイダーが必要です。これは、魔法を実現するために Entity Framework が必要とする追加の機能です。このブログでは、Microsoft が提供しているマッピング プロバイダー以外のマッピング プロバイダーについて説明しています。MySQL に関する言及は見つかりませんでした。
ヴィンタナ、
もちろん、今何か準備ができています。http://www.devart.com/products.html - 商用ですが (30 日間の試用版 IIRC があります)。彼らは執筆プロバイダーとして生計を立てているので、高速で安定していると思います。私は、Orace や MS のプロバイダーではなく、Oracle プロバイダーを使用している大企業を知っています。
https://www.devart.com/dotconnect/mysql/もご覧ください。
DevArtのコネクタはEFとMySQLをサポートしています。
コネクタ .net の使用には注意してください。コネクタ 6.6.5 にはバグがあり、tinyint 値を ID として挿入する場合に機能しません。次に例を示します。
create table person(
Id tinyint unsigned primary key auto_increment,
Name varchar(30)
);
次のようなオブジェクトを挿入しようとすると:
Person p;
p = new Person();
p.Name = 'Oware'
context.Person.Add(p);
context.SaveChanges();
Null 参照例外が発生します。
Referencia a objeto no establecida como instancia de un objeto.:
en MySql.Data.Entity.ListFragment.WriteSql(StringBuilder sql)
en MySql.Data.Entity.SelectStatement.WriteSql(StringBuilder sql)
en MySql.Data.Entity.InsertStatement.WriteSql(StringBuilder sql)
en MySql.Data.Entity.SqlFragment.ToString()
en MySql.Data.Entity.InsertGenerator.GenerateSQL(DbCommandTree tree)
en MySql.Data.MySqlClient.MySqlProviderServices.CreateDbCommandDefinition(DbProviderManifest providerManifest, DbCommandTree commandTree)
en System.Data.Common.DbProviderServices.CreateCommandDefinition(DbCommandTree commandTree)
en System.Data.Common.DbProviderServices.CreateCommand(DbCommandTree commandTree)
en System.Data.Mapping.Update.Internal.UpdateTranslator.CreateCommand(DbModificationCommandTree commandTree)
en System.Data.Mapping.Update.Internal.DynamicUpdateCommand.CreateCommand(UpdateTranslator translator, Dictionary`2 identifierValues)
en System.Data.Mapping.Update.Internal.DynamicUpdateCommand.Execute(UpdateTranslator translator, EntityConnection connection, Dictionary`2 identifierValues, List`1 generatedValues)
en System.Data.Mapping.Update.Internal.UpdateTranslator.Update(IEntityStateManager stateManager, IEntityAdapter adapter)
en System.Data.EntityClient.EntityAdapter.Update(IEntityStateManager entityCache)
en System.Data.Objects.ObjectContext.SaveChanges(SaveOptions options)
en System.Data.Entity.Internal.InternalContext.SaveChanges()
en System.Data.Entity.Internal.LazyInternalContext.SaveChanges()
en System.Data.Entity.DbContext.SaveChanges()
これまで解決策が見つかりませんでした。tinyint ID を unsigned int ID に変更する必要がありました。これで問題は解決しましたが、これは正しい解決策ではありません。
古いバージョンの Connector.net (私は 6.4.4 を使用) を使用している場合、この問題は発生しません。
誰かが解決策を知っている場合は、私に連絡してください。
乾杯!
追われ
mono/linux/macos で MySql を使用して Entity Framework を実行することに興味がある場合は、 https: //iyalovoi.wordpress.com/2015/04/06/entity-framework-with-mysql-on-mac-os/ が参考になるかもしれません。
ここにリンクはありませんでしたが、MySql 用のベータ版 .NET コネクタがあります。[開発リリース] をクリックして、EF4/VS2010 が統合された 6.3.2 ベータ版をダウンロードします。
http://dev.mysql.com/downloads/connector/net/5.0.html#downloads