Полный запрос Linq вместо лямбд с Fluent-NHibernate? - PullRequest
2 голосов
/ 07 января 2009

Я пытаюсь использовать метод запросов Fluent-NHibernate, который выглядит следующим образом:

public T[] Query<T>(Expression<System.Func<T, bool>> where)
        {
            return _session.Linq<T>().Where(where).ToArray();
        }

Я использую VB, поэтому чтобы отправить ему лямбда-выражение, я могу назвать его строкой, подобной этой:

Dim products = flRepos.Query(Of Product)(Function(p As Product) p.Id > 5)

Этот синтаксис правильный, но существует проблема с базовым использованием Fluent Linq для Nhibernate, которая прерывается при использовании лямбда-выражений VB.

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

Для справки, использование полных запросов linq в VB действительно работает с Linq 2 Nhibernate. Этот запрос работал нормально для меня:

Dim product = (From p In session.Linq(Of Product)() _ 
                        Where p.Id = testId _ 
                        Select p).FirstOrDefault() 

1 Ответ

1 голос
/ 10 марта 2009

В текущей модели NHibernate LINQ есть много недочетов, к сожалению, они не будут решены до выхода NHibernate 2.1. В ядро ​​NHibernate внесены изменения, чтобы полностью его поддержать, поэтому вместо вклада он будет полной / интегрированной частью выпуска 2.1. Айенде опубликовал обновление блога, опубликованное несколько месяцев назад с изложением текущих предостережений / планов .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...