【发布时间】:2009-09-26 14:28:03
【问题描述】:
我正在使用带有方法的通用存储库模式:
private ObjectQuery<T> ObjectQueryList()
{
var list = CamelTrapEntities.CreateQuery<T>(EntitySetName);
return list;
}
public IQueryable<T> List()
{
return ObjectQueryList();
}
方法 List() 返回 IQueryable
public static IQueryable<T> Include<T>(this IQueryable<T> obj, string path)
{
if (obj is ObjectQuery<T>)
(obj as ObjectQuery<T>).Include(path);
return obj;
}
此方法在存储库之外用于获取已加载导航属性的实体列表,例如:List.Include("CreatedBy")。问题是它不起作用。所有包含都被忽略。当我将 List() 方法更改为
public ObjectQuery<T> List()
{
return ObjectQueryList();
}
一切正常。
我应该如何实现存储库模式才能执行更复杂的查询?
【问题讨论】:
标签: entity-framework repository-pattern