2009-01-07 59 views
2

我试图用流利,NHibernate的查询方法,它看起来是这样的:完整的Linq查询,而不是与流利NHibernate的Lambdas?

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

我使用VB,所以向它发送一个lambda表达式我可以用这样的行调用它:

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

该语法是正确的,但是在使用VB lambda表达式时,Fluent的Linq到Nhibernate的底层用法存在问题。

我很好,没有使用lambda表达式,我只是不知道如何重写该行以不使用lambda表达式。

作为参考,在VB中使用完整的linq查询确实与Linq 2 Nhibernate一起使用。这个查询对我来说很好:

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

回答