2009-01-07 60 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() 

回答