LINQ где запрос - PullRequest
       1

LINQ где запрос

0 голосов
/ 07 декабря 2010

Таблицы => Подгруппы групп

Мне нужно выбрать ТОЛЬКО группы из таблицы групп, которые были проверены с помощью (флажки), которые содержат SubgroupId

Оператор ниже работает, но он также выбирает группы, которые имеютпустые подгруппы.пожалуйста помогите

var test =
    this.MailingGroupRepository.List().ToList()
        .Cast<MailingGroup>()
        .Select(e => new campaignSegmentCondition
        {
            extra = string.Empty, 
            field = "interests-" + e.GroupingId, 
            op = "all",
            value = string.Join(",", 
                updateRow.MailingSubgroup
                    .Where(r => r.MailingGroupId == e.MailingGroupId)
                    .Select(p => p.Name))
        }).ToList<campaignSegmentCondition>();

Ответы [ 2 ]

1 голос
/ 07 декабря 2010

Если я понимаю проблему, то есть очень простое решение.Попробуйте это:

var test =
    this.MailingGroupRepository.List().ToList()
        .Cast<MailingGroup>()
        .Where(e => updateRow.MailingSubgroup
                    .Any(r => r.MailingGroupId == e.MailingGroupId))
        .Select(e => new campaignSegmentCondition
        {
            extra = string.Empty, 
            field = "interests-" + e.GroupingId, 
            op = "all",
            value = string.Join(",", 
                updateRow.MailingSubgroup
                    .Where(r => r.MailingGroupId == e.MailingGroupId)
                    .Select(p => p.Name))
        }).ToList<campaignSegmentCondition>();

Обратите внимание на включение следующего кода:

        .Where(e => updateRow.MailingSubgroup
                    .Any(r => r.MailingGroupId == e.MailingGroupId))
0 голосов
/ 07 декабря 2010

Можете ли вы проверить, пуста ли почтовая подгруппа или нет в вас, где пункт?-

updateRow.MailingSubgroup
   .Where(r => !r.IsEmpty && r.MailingGroupId == e.MailingGroupId)

если нет свойства IsEmpty, вы также можете проверить что-то вроде r.Items.Count > 0, если это возможно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...