Почему LINK не поддерживает простые внешние соединения (с учетом предложения where на внешней объединенной таблице)?

у меня есть tableA и tableB

tableA имеет свойство B_Id .

Этот запрос работает нормально:

IEnumerable<A> a = Session.Query<A>().Fetch(r=>rB); 

но я хочу что-то вроде:

  IEnumerable<A> a = Session.Query<A>().Where(r=>rBActive).Fetch(r=>rB); 

похоже, когда я это делаю, он больше не выполняет простого внешнего соединения, и если в таблице B нет активных записей, я не получаю никаких результатов.

Я хочу сделать чистый внешний интерфейс, который все равно даст мне результаты, но с свойством B объекта A как null.

Поддерживает ли LINK LINQ эту способность помещать предложение where в вашу внешнюю таблицу?

Согласно этому сообщению в группе nhusers, это, по-видимому, не поддерживается, и вам придется использовать HQL.

Что касается того, почему, я бы предположил, что авторы планируют добавить его, но имеют более высокие приоритеты. Лично я бы рассматривал это как ключевую особенность.

Угадайте:. .Where(a => aB == null || aBActive)

Мысль: вы пытаетесь выбрать экземпляры A, которые будут находиться в неизвестном состоянии. Как NHibernate отличается между экземплярами A, где B == null и B.Active == false?

Оба будут, если они будут работать, возвращают нулевые значения для B и A, будут заполнены нулевой ссылкой. Что произойдет, если вы снова сохраните A? Должна ли ссылка на B быть нулевой? Это приведет к удалению ссылок, когда B.Active == false. Должен ли он быть нетронутым? Это приведет к тому, что NHibernate сохранит состояние, которое не представляет ваш объект домена.

  • Аудит данных в NHibernate и SqlServer
  • sql server datetime
  • Как использовать полнотекстовый поиск для любого свойства с QueryOver API
  • NHibernate - необходимо изменить порядок сохранения, чтобы удовлетворить ограничения базы данных?
  • last_insert_id? C #, SQL Server и NHibernate
  • NHibernate - уникальный индекс с предложением WHERE
  • Время ожидания IO для SQL Server 2005 (тип ожидания ASYNC_NETWORK_IO) Проблема
  • Сохранение изображений в базе данных приводит к частичному изображению
  • Как указать критерии NHibernate с постоянным значением, которые не будут переведены в качестве параметра запроса команды SQL
  • Как сопоставить (и настроить) круговую ссылку в NHibernate?
  • SQL Server работает очень медленно при вызове из приложения .NET
  • Interesting Posts

    Как показать отчетливую неделю?

    Ошибка при добавлении сборки в SQL Server 2012

    Получение «Подзапрос возвратил более 1 сообщения об ошибке значения» при использовании оператора Case внутри Where Not In

    OracleDataAdapter не заполняет DataTable из запроса

    Не удалось развернуть БД из локального SQL Server

    Строка типизированных таблиц значений в sql, есть ли лучший способ сделать это? (мы используем MSSQL)

    Вычесть значения в разных записях

    Как я могу получить отчет SQL с группой, который заменяет группу по значению на строку?

    лучший XML-формат для хранения в базе данных SQL Server

    Рекурсивная таблица объединения

    Математическая операция с столбцами dataGridView строка за строкой, а затем отображение окончательного значения в текстовом поле

    Ошибка при вставке значений

    Фильтрация SQL Server 2008

    Краткое руководство в SQL Server / преобразование из символьной строки в uniqueidentifier

    TSQL Преобразование символов в XML

    Давайте будем гением компьютера.