0

エンティティ フレームワークを介してデータを取得するために使用する関数があります。

    public IEnumerable<Deal> GetCategory(int subcategoryId)
    {
        using (var uow = new ReadUow())
        {
            var r = new ReadRepo<Deal>(uow.Context);

            var deals = r.FindBy()
                .Include("DealSubcategories")
                .Where(d => d.DealSubcategories.Any(s => s.SubcategoryId == subcategoryId));

            return deals.ToList();
        }
    }

.Where 句を使用すると、単一の subcategoryId でフィルター処理できます (Lee と Jon Skeet の厚意による) が、別のクエリのリストと比較するのと同様に苦労しています。したがって、単一の subcategoryId の代わりに、どういうわけか List と比較します。

かなりイライラするので、アドバイスをいただければ幸いです。

4

1 に答える 1

1

IEnumerable<int>検索したい値を含む呼び出された IDがあると仮定します。

var deals = r.FindBy()
            .Include("DealSubcategories")
            .Where(d => d.DealSubcategories.Any(s => ids.Contains(s.SubcategoryId)));
于 2012-08-25T12:35:20.820 に答える