3

MySQL と Postgresql を使用して、SVN トランクから DBLinq-0.18 と DBLinq をテストしています。私は非常に単純なクエリのみを使用していますが、両方のデータベースで DBLinq が Where 句を生成していません。Postgresql でステートメント ログをオンにして、DBLinq が送信している要求を正確に確認することで、これを確認しました。

私の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;

クエリは問題なく動作しますが、DBLinq によって生成される SQL は次の形式です。

select customerusername, customerpassword .... from public.customers

Linq クエリを実行する前に DBLinq がテーブル全体を取得する必要があることを意味する Where 句はありません。

DBLinq の経験があり、私が間違っている可能性があることを知っている人はいますか?

4

2 に答える 2

1

問題が見つかりましたが、DBLinq とは関係ありません。

私は IronRuby からいくつかのものをテストしていましたが、その中に System.Data.Linq 名前空間を複製する Microsoft.Scripting.Core というアセンブリがあります (なぜそうなるのかはわかりません)。

Microsoft.Scripting.Core アセンブリへの参照により、私のテスト DBLinq アプリは正常にコンパイルおよび実行されますが、SQL に where 句がありません。アセンブリ参照を削除すると、where 句が正しく生成されました。

于 2009-04-19T15:45:56.007 に答える
0

実稼働コードにDBLinqを使用することは避けたいと思います...Linq-To-SQLの機能の多くは実装されておらず、ソースコードをウォークスルーすると、成熟度が低いことがわかります...メソッドの多くは実装されていないか、次のようにマークされています「未終了」。

...警告されました!

于 2009-11-05T13:59:47.793 に答える