Entity FrameworkでのMySQLの使用[終了]


269

Entity Framework / MySQL on Googleに関連するものが見つからないため、誰かがそれについて知っていることを願っています。


8
率直に言って、LINQのmysqlサポートは粗末です!過去1週間、軽微な問題に頭を悩ませています:| ...
effkay 2009

1
dblinq code.google.com/p/dblinq2007を使用しましたか?
Sharique

回答:


193

リリースされました-.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を参照)。


4
最新バージョンはこちら(現在の6.2.2)で入手できることをお伝えし
Brett Ryan

3
これはEF4とVS2010をサポートしていますか?コネクタをインストールしてVS2010に新しい接続を追加しようとしましたが、MySQLがプロバイダーのリストに表示されません
Abhijeet Patel

1
MySQL、EF4、VS2010に興味があります。
Vinicius Rocha、

1
最新のコネクタを使用している場合は、そうする必要があります。MySQLエンティティのサポートのため、製品を.NET4に移動しました。ツールとすべてが正常に動作しますが、大きな問題は、実際のクエリに対して提供する基本的なサポートです。MSSQLで実行しないランバ式にはかなりの数の問題があります
David Anderson

1
もちろん、新しいバージョンが出てきます。EF5、バージョン6.7.4をサポートするようになりました:dev.mysql.com/downloads/connector/net/#downloadsまた、このバージョン以降、MySQLサーバーと他のツールを含むVSプラグインが1つのパッケージにバンドルされています:dev.mysql.com / tech-resources / articles /…
Nullius

22

私は、そのリンクのエンコーディングを固定-ユーザーは右クリックを通じてではなく、後藤/コピー/ペーストまたは選択することができます
ケンプͩ

7
リンクが動作しません
MüllerDK

2
次のリンクの記事にアクセスできます。pattersonc.com
Andy White

EFでのMYSQLの使用は改善されていますか、それでも問題がありますか?SQLサーバーが望ましい場合、同じベンダーのMicrosoftであるだけでSQLサーバーが望ましい理由を誰かが正確に特定できますか?
user3508811 2017


7

これはMSと彼らが望むものについてではありません。彼らは他の人が「プロバイダー」をプラグインするための*オープンシステムを作成しました-postgresとsqliteはそれを持っています-mysqlはただの遅れです... / Net 6.0はそれを持っています...ここで確認できます:

http://www.upfromthesky.com/blog/post/2009/03/24/MySql-Supports-the-Entity-Framework.aspx


1
彼らが「Initial Entity Framework support」と言ったとき、「初期」は何を意味するのだろうと思います。
ヴィンタナ2009年

5

MySQLのマッピングプロバイダーが必要です。これは、Entity Frameworkが魔法を起こすために必要な特別なことです。このブログでは、Microsoftが提供しているもの以外のマッピングプロバイダーについて説明しています。MySQLについての言及は見つかりませんでした。


ええ、あなたは正しいです。私は今、何か準備ができていることを望んでいました。
vintana 2008

2

ビンタナ、

Odもちろん何か準備ができています。http://www.devart.com/products.html-商用です(30日間のトライアルIIRCがあります)。彼らは生きたライティングプロバイダーを作っているので、それは速くて安定しているはずだと思います。OraceやMSのプロバイダーの代わりにOracleプロバイダーを使用している大企業を知っています。


お返事ありがとうございます。@ Vintana、dotConnect for MySQLとその利点の詳細については、devart.com/dotconnect/mysqlを参照してください。Entity Frameworkエンティティでの作業を改善するために、ビジュアルモデル作成のための高度なツールであるEntity Developer devart.com/entitydeveloperを提供しています。
Devart

1

コネクタ.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を使用)を使用している場合、この問題は発生しません。

誰かが解決策について知っている場合は、私に連絡してください。

乾杯!

オワレ


pがnullであるため、エラーがスローされます。最初にオブジェクトの新しい空のインスタンスを作成する必要があります。すなわちPerson p = new Person(); Person pではありません。つまり:Person p = new Person(){Name = "Oware"}; context.Person.Add(p); context.SaveChanges();
Dave

申し訳ありませんが、新しい行を追加するのを忘れていました。新しい行を追加しても、エラーは
引き続き

このバグはバージョン6.8.2で修正されています。bugs.mysql.com/bug.php?id=70888 Connector / Net 6.8.3がリリースされました。dev.mysql.com/downloads/connector/net
Der_Meister



0

Mono / linux / macosでMySqlを使用してEntity Frameworkを実行することに興味がある場合は、これが役立つ場合があります https://iyalovoi.wordpress.com/2015/04/06/entity-framework-with-mysql-on-mac-os/


EFでのMYSQLの使用は改善されていますか、それでも問題がありますか?SQLサーバーが望ましい場合、同じベンダーのMicrosoftであるだけでSQLサーバーが望ましい理由を誰かが正確に特定できますか?
user3508811 2017

現在の状況はわかりませんが、機能が不足していて全体的に一貫性がないため、かなり悪い経験になりました。Microsoftは独自のスタックを最初に置くため、MS MSQLは間違いなく望ましいです。
イゴールヤロヴォイ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.