【发布时间】:2012-11-16 21:46:27
【问题描述】:
我正在使用 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);
提前致谢!吉列尔莫
【问题讨论】:
标签: c# linq entity-framework linq-to-entities entity-framework-5