LINQ к Объекту, присоединяющемуся на таблицах NOT IN

Мой мозг, кажется, шумы прямо сейчас! Я использую LINQ для Объекта, и я должен получить некоторые данные из одной таблицы, которая НЕ существует в другой таблице.

Например: Мне нужны groupID, groupname и groupnumber от ТАБЛИЦЫ A, где они не существуют в ТАБЛИЦЕ B. groupID будет существовать в ТАБЛИЦЕ B, наряду с другой релевантной информацией. Таблицы не имеют никаких отношений. В SQL это было бы вполне просто (существует более изящное и эффективное решение, но я хочу нарисовать изображение того, в чем я нуждаюсь),

SELECT
   GroupID,
   GroupName,
   GroupNumber,
FROM
   TableA
WHERE
   GroupID NOT IN (SELECT GroupID FROM TableB)

Существует ли легкий/изящный способ сделать это использование Объекта Framework/LINQ к Объекту? Прямо сейчас у меня есть набор запросов, поражающих дб, затем сравнение, и т.д. Это довольно грязно.

10
задан Piotr Kula 15 October 2013 в 13:39
поделиться

2 ответа

Вы можете использовать любой

  var temp =context.TableA
         .Where(x=>!context.TableB.Any(y=>y.GroupID!=x.GroupID))
         .Select(x=>new { GroupID = x.GroupID, GroupName=x.GroupName, GroupNumber = x.GroupNumber}).ToList();
15
ответ дан 3 December 2019 в 19:32
поделиться

Это зависит от того, как вы их встретили, чего вы не показываете, но обычно:

var q = from a in Context.TableA
        where !a.Group.TableBs.Any()
        select new
        {
            GroupID = a.GroupID,
            GroupName = a.GroupName,
            GroupNumber = a.GroupNumber
        };
4
ответ дан 3 December 2019 в 19:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: