質問
私は、MySQLとPostgreSQLでSVNのトランクからDBLinq-0.18とDBLinqをテストしています。私は非常に単純なクエリを使用していますが、両方のデータベースにDBLinqは、WHERE句を生成していません。私はDBLinqが送信される要求を正確に確認するためのPostgreSQL上の文のロギングをオンにすることで、これを確認しています。
私のLINQクエリがあります:
MyDB db = new MyDB(new NpgsqlConnection("Database=database;Host=localhost;User Id=postgres;Password=password"));
var customers = from customer in db.Customers
where customer.CustomerUserName == "test"
select customer;
クエリは、[OK]を動作しますが、DBLinqによって生成されたSQLの形式は次のとおりです。
select customerusername, customerpassword .... from public.customers
DBLinqは、LINQクエリを実行する前に、ダウンテーブル全体を引っ張っなければならないことを意味Where句はありませんがあります。
誰もがDBLinqの経験を持っていたし、私が間違っていることができるものを知っていますか?
解決
私は問題を発見し、それがDBLinqとは何の関係もないのです。
私は(それは私が知らないことを理由ん)System.Data.Linq名前空間を複製Microsoft.Scripting.Coreと呼ばれるアセンブリがあることがIronRubyのからと内いくつかのものをテストしていました。
Microsoft.Scripting.Coreアセンブリを参照して私のテストDBLinqアプリは、コンパイルして実行する罰金が、where句はSQLに欠けていますでしょう。アセンブリ参照を削除すると、句が正しく生成されている場合に生じます。
他のヒント
私は、LINQのツーSQLの機能の多くが実装され、ソースコードを歩くことは成熟度の低いレベルを示していない...方法の多くは実装されていません...生産コードのためのDBLinqを使用しないようにしたいですまたは「終端されていない」としてマークされました。
...あなたは警告してきた!