2
我有一个创建一个IQueryable如下通用仓库实现:IQueryable的包括没有给予正确的结果
internal IEnumerable<T> Get(Expression<Func<T, bool>> filter = null,
Func<IQueryable<T>, IOrderedQueryable<T>> orderBy = null,
List<Expression<Func<T, object>>> includeProperties = null,
int? page = null,
int? pageSize = null)
{
IQueryable<T> query = m_dbSet;
if (filter != null)
query = query.Where(filter);
if (orderBy != null)
query = orderBy(query);
if (page != null && pageSize != null)
query = query.Skip((page.Value - 1) * pageSize.Value)
.Take(pageSize.Value);
if (includeProperties != null)
includeProperties.Aggregate(query, (current, include) => current.Include(include));
return query.ToList();
}
说我遇到的问题是,我传递给表达式包括没有得到列入查询的输出。生成的SQL不包含JOIN。
我没有其他参数在查询。过滤器,orderBy,page和pageSize都是空的。包括所述列表中包含的单个表达与构件提到了表达式被声明为
public virtual MyType m_Member { get; set; }
存储库对象POCO类内
。
我读过IQueryable删除包含选择或投影,但我没有在这里做我相信。有人知道这里发生了什么吗?
谢谢你,延缓大脑的肯定的情况下,上周五 – Richard