Mono 上の MySql データベースで Linq を使用するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/42212

  •  09-06-2019
  •  | 
  •  

質問

MySql データベースと対話する C# コードに Linq 機能を提供するライブラリが多数あります。Mono で最も安定して使用できるのはどれですか?

背景 (ほとんど無関係):MySql データベースの値を更新する単純な C# (.Net 2.0) プログラムがあります。これは cron ジョブ経由で毎晩実行され、Pentium 3 450Mhz、Linux + Mono で実行されます。主に演習として Linq (.Net 3.5) を使用して書き直したいと思います (Linq はまだ使用したことがありません)。

役に立ちましたか?

解決

MySql 用の唯一の (無料) linq プロバイダーは次のとおりです。 DbLinq, 、本番環境への対応には程遠いと思います。

もあります MyDirect.Net これは商用ですが、その機能についてはさまざまなレビューを聞いています。

MySql が .net コネクタの 5.3 バージョンに Linq to Entities API を実装する予定であることを読みましたが、その予定があるかどうかはわかりません。実際、MySql はここ数か月間、Entity Framework のサポートについてまったく沈黙してきました。


補遺:リリース ノートによると、MySql Connector/Net 6.0 の最新リリースでは EF がサポートされています。これがどれだけ安定しているか、どれだけ役立つかはわかりません。試したことがある人からの意見をぜひ聞きたいです。

他のヒント

による モノラルロードマップ Linq がモノラルで利用できるかどうかわかりません。

Linq の少なくとも一部は最新リリースで利用できる可能性がありますが、Linq to DB は Mono 2.4 (2009 年 2 月) にリストされています。

Monoについてはよくわかりませんが、使い始めたばかりです ライトスピード そしてそれはLINQ-to-MySQLをサポートします。

現時点では、linq to SQL を使用することはできません。サードパーティの linq mysql プロバイダーまたは linq to entities を検討することをお勧めします。linq to sql は SQL サーバー データベースに対してのみ機能します。

LINQ to SQL は、式の力を利用してコード内でクエリを簡単に構築できるようにする単純な ORM レイヤーです。

ツールのアドホック クエリを呼び出すだけの場合、LINQ を使用する必要はほとんどありません。コードに抽象化の層が追加されるだけです。

でチュートリアルを試してみました http://www.primaryobjects.com/CMS/Article100.aspx. 。これは、dblinq/dbmetal を使用して、各テーブルのデータ コンテキスト クラスとクラスを生成します。

コードは、最初の試行で未処理の例外 (MySql.Data.Types.MySqlConversionException:) が発生して失敗しました。MySQL の日付/時刻値を System.DateTime に変換できません)。グーグルが明らかにしたことは、「ゼロdateTime = true;」を追加することで、これを簡単に解決する必要があることを明らかにしました。接続文字列に。残念なことに、これでは私の問題は解決されませんでした。MySQL .Net コネクタが原因であると考え、MySQL コネクタを使用して linq2sql 中間層なしで dblinq によって生成された SQL を実行しました。今回は例外は発生しませんでした。日付列のないテーブルは DbLinq で機能しました。したがって、私の実験によると、DbLinq は運用準備には程遠い、という Adam の意見に同意します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top