DBLinq не генерирует предложениеwhere
-
09-09-2019 - |
Вопрос
Я тестирую DBLinq-0.18 и DBLinq из SVN Trunk с 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 и знает, что я могу делать неправильно?
Решение
Я нашел проблему, и она не имеет ничего общего с DBLinq.
Я тестировал кое-что из IronRuby, и внутри него есть сборка под названием Microsoft.Scripting.Core, которая дублирует пространство имен System.Data.Linq (почему это происходит, я не знаю).
Со ссылкой на сборку Microsoft.Scripting.Core мое тестовое приложение DBLinq скомпилировалось и работало нормально, но в SQL отсутствовало предложениеwhere.Удаление ссылки на сборку привело к правильному созданию предложенияwhere.
Другие советы
Я бы не стал использовать DBLinq для производственного кода...многие функции Linq-To-SQL не реализованы, а просмотр исходного кода показывает низкий уровень зрелости...многие методы не реализованы или помечены как «незавершенные».
...вы предупреждены!