Я использую Linq для извлечения данных из контекста. Я пытаюсь получить только родительские CategoryAttributeItemDescriptions
элементов, у которых нет внука AttributeItems
с внутренним именем, содержащим слово «Range -» Код ниже, где я нахожусь.Выберите только те родители, в которых ни одно из имен детей не содержит определенную строку
var query = from caid in context.CategoryAttributeItemDescriptions
join cai in context.CategoryAttributeItems on caid.Id equals cai.CategoryAttributeItemDescriptionsId
join ai in context.AttributeItems on cai.AttributeId equals ai.Id
where caid.CategoryAttributeItems.Any(c => !c.AttributeItem.InternalName.Contains("Range -")) && caid.CategoryId ==element.Id
select caid;
Проблема в том, что она по-прежнему возвращает родителей, которые имеют отношение к внукам с этим внутренним именем. Есть идеи? Thanks
попытка изменения ИНЕКЕ «где caid.CategoryAttributeItems.Any (с =>! C.AttributeItem.InternalName.Contains («Range -»)) && caid.CategoryId == element.Id ' – uk2k05
в основном добавить восклицательный знак перед c.AttributeIte .... это переводится как' Not ' – uk2k05
Возможно, я читаю это неправильно, но не вы нажимаете FOR match в предикате Any(), а не exclusi нг ?? –