我的通用存储库中有以下功能可以正常工作:
public IQueryable<T> FindWhere(System.Linq.Expressions.Expression<Func<T, bool>> predicate, params string[] includes)
{
IQueryable<T> query = _dbSet;
foreach (var child in includes)
{
query = query.Include(child);
}
return query.Where(predicate);
}
然后我还要找到一个项目:
public T FindById(int id)
{
return _dbSet.Find(id);
}
我需要的是FindById
的覆盖,允许我传入params string[]
包含,以允许我对找到的单个项目进行热切的加载属性。
我该怎么做?
答案 0 :(得分:0)
您可以使用实体条目加载相关实体,但是您需要知道关系多样性:
entity = _dbSet.Find(id);
// Use this for a reference property
context.Entry(entity).Reference(propertyName).Load();
// Use this instead for a collection property
context.Entry(entity).Collection(propertyName).Load();