Entity Framework / MySQL on Googleに関連するものが見つからないため、誰かがそれについて知っていることを願っています。
Entity Framework / MySQL on Googleに関連するものが見つからないため、誰かがそれについて知っていることを願っています。
回答:
リリースされました-.Net v6.5のMySQLコネクタを取得します -これは[Entity Framework]をサポートしています
私はこれをずっと待っていました、サポートは基本的ですが、db相互作用の最も基本的なシナリオで機能します。また、基本的なVisual Studio統合も備えています。
UPDATE http://dev.mysql.com/downloads/connector/net/ バージョン6.7以降、Connector / NetにはMySQL for Visual Studio統合が含まれなくなります。この機能は、MySQL Installer for Windowsを使用して利用可能なVisual Studio for MySQLと呼ばれる別の製品で利用できるようになりました(http://dev.mysql.com/tech-resources/articles/mysql-installer-for-windows.htmlを参照)。
この件に関する私の投稿をご覧ください。
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はただの遅れです... / Net 6.0はそれを持っています...ここで確認できます:
http://www.upfromthesky.com/blog/post/2009/03/24/MySql-Supports-the-Entity-Framework.aspx
MySQLのマッピングプロバイダーが必要です。これは、Entity Frameworkが魔法を起こすために必要な特別なことです。このブログでは、Microsoftが提供しているもの以外のマッピングプロバイダーについて説明しています。MySQLについての言及は見つかりませんでした。
ビンタナ、
Odもちろん何か準備ができています。http://www.devart.com/products.html-商用です(30日間のトライアルIIRCがあります)。彼らは生きたライティングプロバイダーを作っているので、それは速くて安定しているはずだと思います。OraceやMSのプロバイダーの代わりにOracleプロバイダーを使用している大企業を知っています。
コネクタ.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を使用)を使用している場合、この問題は発生しません。
誰かが解決策について知っている場合は、私に連絡してください。
乾杯!
オワレ
Person p = new Person(){Name = "Oware"}; context.Person.Add(p); context.SaveChanges();
https://www.devart.com/dotconnect/mysql/もご覧ください。
DevArtのコネクタはEFとMySQLをサポートしています。
ここにはリンクはありませんでしたが、MySql用のベータ版.NETコネクタがあります。「開発リリース」をクリックして、EF4 / VS2010に統合された6.3.2ベータ版をダウンロードします。
http://dev.mysql.com/downloads/connector/net/5.0.html#downloads
Mono / linux / macosでMySqlを使用してEntity Frameworkを実行することに興味がある場合は、これが役立つ場合があります https://iyalovoi.wordpress.com/2015/04/06/entity-framework-with-mysql-on-mac-os/