Вопрос

Я тестирую 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 не реализованы, а просмотр исходного кода показывает низкий уровень зрелости...многие методы не реализованы или помечены как «незавершенные».

...вы предупреждены!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top