DBLinq не создает предложение where - PullRequest
3 голосов
/ 17 апреля 2009

Я тестирую DBLinq-0.18 и DBLinq из магистрали SVN с MySQL и Postgresql. Я использую только очень простой запрос, но в обеих базах данных 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;

Запрос работает нормально, но SQL, сгенерированный DBLinq, имеет вид:

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

Нет условия Where, которое означает, что DBLinq должен вытянуть всю таблицу перед выполнением запроса Linq.

Кто-нибудь имел опыт работы с DBLinq и знает, что я могу делать не так?

Ответы [ 2 ]

1 голос
/ 19 апреля 2009

Я нашел проблему, и это не имеет никакого отношения к DBLinq.

Я тестировал некоторые вещи из IronRuby, и в них есть сборка под названием Microsoft.Scripting.Core, которая дублирует пространство имен System.Data.Linq (почему это происходит, я не знаю).

Со ссылкой на сборку Microsoft.Scripting.Core мое тестовое приложение DBLinq скомпилировалось бы и работало бы нормально, но в SQL отсутствовало бы условие where. Удаление ссылки на сборку привело к правильному генерированию предложения where.

0 голосов
/ 05 ноября 2009

Я бы не использовал DBLinq для производственного кода ... многие функции Linq-To-SQL не реализованы, а просмотр исходного кода показывает низкий уровень зрелости ... многие методы не реализованы или помечены как «неопределенные».

... вы были предупреждены!

...