我有下面的方法儲存庫:如何創建表達式<Func <T, TRelated>>的集合?
IEnumerable<T> FindAll<TRelated>(Specification<T> specification,
Expression<Func<T, TRelated>> fetchExpression);
我需要在一個以上的表達通過。我在想改變簽名:
IEnumerable<T> FindAll<TRelated>(Specification<T> specification,
IEnumerable<Expression<Func<T, TRelated>>> fetchExpression);
- 這可能嗎?
- 如何創建一個數組,例如表達式以傳入此方法?
目前,我從我的服務層調用該方法是這樣的:
var products = productRepository.FindAll(specification,p => p.Variants);
,但我想通過p => p.Variants
和p => p.Reviews
例如。然後在存儲庫中,我想遍歷表達式並將它們添加到查詢中。
有關我爲什麼這樣做的背景,請參閱Ben Foster在Eager loading with NHibernate上的博客文章。
我不知道[Ben Foster](http://www.imdb.com/name/nm0004936/)是程序員! – Shibumi