私は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としてキャストすると、変数queryの値はnullになります。
なんで?Idがパラメーターによって送信されたエンティティとすべてのインクルードがパラメーターによって送信されたエンティティのみを選択するにはどうすればよいですか?
使用例:
var houses = Uow.Types.GetByIdIncluding(id, tt => tt.Houses);
前もって感謝します!ギレルモ