0

我的通用存储库中有以下功能可以正常工作:

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[]包含,以便我急切地加载找到的单个项目的属性。

我怎样才能做到这一点?

4

1 回答 1

1

您可以使用实体条目来加载相关实体,但是您需要了解关系多重性:

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();
于 2012-09-24T20:49:03.300 回答