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 に答える