Как объединить два источника данных, которые возвращают все строки и группы по условию? - PullRequest
1 голос
/ 24 июня 2011

У меня проблема при использовании LINQ для объединения двух источников данных.Два источника данных, создаваемых запросом, например:

var A = (из .... group .... в grp select new {Qty = grp.Count (), Code = grp.Key.Code, Name= grp.Key.Name});

var B = (из .... group .... в grp выберите новый {Qty = grp.Count (), Code = grp.Key.ContCode,Name = grp.Key.ContName});

Значение «A» будет возвращено так:

    Qty-Code-Name

    1-10A-Cont10
    1-20B-Cont20
    1-30C-Cont30 

Значение «B» будет возвращено так:

    Qty-Code-Name

    1-10A-Cont10
    1-20B-Cont20
    1-30C-Cont30
    1-40D-Cont40
    1-50E-Cont50

Я хочу объединить А и В (или сделать что-то) и получить такой результат (столбец суммы «Кол-во», если у них одинаковые «Код» и «Имя»):

    Qty-Code-Name

    2-10A-Cont10
    2-20B-Cont20
    2-30C-Cont30
    1-40D-Cont40
    1-50E-Cont50

Как я могу это сделать?Пожалуйста, помогите мне.Большое спасибо!

1 Ответ

3 голосов
/ 24 июня 2011

Сконцентрируйте два источника данных и затем сгруппируйте их по code и name. Что-то вроде:

var q = from v in A.Concat(B)
        group v by new {v.Code,v.Name } into g
        select new
        {
            Qty = g.Sum(a => a.Qty),
            CodeName = g.Key.Code,
            Name = g.Key.Name
         };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...