LINQで動作し、動的SQLクエリ生成をサポートする他のMS SQL(MySQLやSQLiteなど)のデータベース用の無料(無償)プロバイダーはありますか?たとえば、 table.Count()
はSELECT COUNT(*) FROM table
ようなものを生成し、最初にテーブル全体をロードしてから行をカウントしません。
これはDBLinqプロジェクトです: http ://code.google.com/p/dblinq2007/
DbLinqは、Linq to SQLに近いAPIで一般的なデータベースを使用できるようにするLINQプロバイダーです。現在サポートしています(出現順):MySQL、Oracle、PostgreSQL、SQLite、Ingres、Firebird
これらのプロバイダーがあなたが記述した方法でCount()
を実行するかどうかは、プロバイダーの品質に依存すると私は思います。おそらく、最適化にはある程度の努力が払われています。
http://weblogs.asp.net/scottgu/archive/2008/01/07/dynamic-linq-part-1-using-the-linq-dynamic-query-library.aspxも参照してください。
ADO.NET Entity Frameworkを調べてください。 ADO.NETデータプロバイダーおよびLINQ to Entities(LINQ to SQLに類似)を介してMySQLをサポートします。 Microsoftツールであるため、Visual Studioとの統合とサポートが優れています。
これらのデータベースをサポートする理由についても説明できますか?