我正在使用 EF5,并且我有一个带有 GetById 方法的通用存储库,该方法可以接收所需的包含属性,如下所示:
public virtual T GetByIdIncluding(long id, params Expression<Func<T, object>>[] includeProperties)
{
IQueryable <T> query = DbContext.Set<T>().Find(id) as IQueryable<T>;
foreach (var includeProperty in includeProperties)
{
query = query.Include(includeProperty);
}
return query.FirstOrDefault();
}
DbContext.Set<T>().Find(id)
返回正确的对象,但是当我将其转换为 IQueryable 时,变量查询的值变为空。
为什么?如何仅选择具有由参数发送的 Id 的实体以及由参数发送的所有包含项?
使用示例:
var houses = Uow.Types.GetByIdIncluding(id, tt => tt.Houses);
提前致谢!吉列尔莫