2012-03-30 36 views
0

我想將Fetch()/ FetchMany()方法集成到我的通用存儲庫中,但我掙扎了一下 - 似乎沒有任何工作!Nhibernate獲取存儲庫模式

//Interface 
public interface IRepository<T> where T : BaseEntity 
{ 
    IQueryable<T> Find(System.Linq.Expressions.Expression<System.Func<T, bool>> expression); 

    IQueryable<T> Fetch<TRelated>(Expression<Func<T, TRelated>> fetchExpression); 

    void Insert(T entity); 

    void Update(T entity); 

    void Delete(T entity); 
} 

//Implementation 
     public IQueryable<TRelated> Fetch<TRelated>(Expression<Func<T, bool>> expression, Expression<Func<T,IEnumerable<TRelated>>> fetchExpression) 
     { 
      return _session.Query<T>() 
        .Fetch(fetchExpression); 
     } 

我的問題是,它試圖將NHFetchRequest轉換爲IQueryable,並且沒有骰子!

此外,有沒有走,我可以在一個IQueryable的傳遞到這個(比如來自哪裏?),或者我會更好,只是增加了哪裏到這個....

THX

回答

4

你可以找到實施示例here

+0

我看過您的文章,但是您是否有一個示例客戶端代碼,它使用存儲庫幷包含您的提取提供程序?我還不清楚如何把事情放在一起。 – hardywang 2012-09-12 00:08:10

+0

在github上有一個例子。你可以在該帖子中找到鏈接 – Sly 2012-09-12 06:46:26