1

状況に応じて、追加のテーブル「Category」と「Manufacturer」を含めることがあるクエリ メソッドがあります。ただし、クエリを実行するたびに、カテゴリと製造元のナビゲーション プロパティは常に空白になります。私は何を間違っていますか?

private IQueryable<Item> GetQuery(ItemFilter filter, ItemCacheContainer context)
    {
        //Perform optional Joins
        ObjectQuery<Item> query = context.Items;

        if (filter.JoinCategory)
            query.Include("Category");

        if (filter.JoinManufacturer)
            query.Include("Manufacturer");

        return query.Where(i =>
              (!filter.ItemId.HasValue
              || i.ItemId == filter.ItemId.Value));
    }

また、メソッドの使用方法は次のとおりですGetQueryが、ブレークポイントを配置すると、ConvertItemFromCachenull ナビゲーション プロパティが表示されます。

GetQuery(filter, context)
    .ToList()
    .ConvertAll(ConvertItemFromCache)
    .SingleOrDefault();

ありがとう!

4

1 に答える 1

3

queryの結果に設定する必要がありますquery.Include("...")

query = query.Include("Category");

あなたの例では:

if (filter.JoinCategory)
 query = query.Include("Category");

if (filter.JoinManufacturer)
 query = query.Include("Manufacturer");
于 2012-04-20T15:08:19.787 に答える