Линк Где фильтрация - PullRequest
       7

Линк Где фильтрация

0 голосов
/ 05 октября 2018

Возникла проблема с фильтрацией результатов запроса.

public class LinkTabProductCategory
{
    [Key]
    public int Id { get; set; }

    public int ProductId { get; set; }
    [JsonIgnore]
    public Product Product { get; set; }

    public int CatalogSubSectionId { get; set; }
    public CatalogSubSection CatalogSubSection { get; set; }
}

var result = DataContext.Product                    
                .Include(o => o.Offers)
                        .ThenInclude(p => p.Prices)
                            .ThenInclude(t => t.Type)
                .Include(p => p.Brand)
                .Include(tb=>tb.LinkTabProductCategories)
                .Where( p=>p.LinkTabProductCategories **???** == id)
                .ToList();

Мне нужно получить список продуктов, который имеет: LinkTabProductCategories.CatalogSubSectionId == id

Обновление Это результат запроса Список:

{
    "ProductId":"",
    "UID1C": "",
    "Name": "",
    "Article": "",
    "FactoryNumber": "",
    "Brand": {
        "BrandId": "",
        "UID1C": "",
        "Name": ""
    },
    "Offers": []       
    ,
    "LinkTabProductCategories": [
        {
            "Id": 1,
            "ProductId": 2,
            "CatalogSubSectionId": 1,
            "CatalogSubSection": null
        }
    ]
},
{},
{}.....

Как получить товар только с "CatalogSubSectionId" == 1

Ответы [ 2 ]

0 голосов
/ 05 октября 2018

В условии .Where( p=>p.LinkTabProductCategories **???** == id) - это список, поэтому вам нужно искать в списке любой элемент, для которого CatalogSubSectionId удовлетворяет данному условию.

Вы можете использовать Any с этим списком, чтобы получитьтребуемый предикат.

.Where(p => p.LinkTabProductCategories.Any(c => c.CatalogSubSectionId == id))
0 голосов
/ 05 октября 2018

Использовать метод Any (предикат) - возвращает true, любой из элементов удовлетворяет условию предиката:

.Where (p => p.LinkTabProductCategories.Any (c => c.CatalogSubSectionId == id))

...