Синтаксис Linq объединяет и группирует - PullRequest
0 голосов
/ 23 августа 2011

Здравствуйте, мне нужно объединить две таблицы (MainTransaction и Subtransaction), проблема здесь в том, что я также хочу получить всю запись Maintransaction, которой нет в Subtransaction, я застрял в этой части, как мне этого добиться?

protected object SelectMainTbl()
{
    var mainIdAndSum = from st in t.subtransaction
                       group st by st.MainTransactionId into g
                       select new
                       {
                           Sum = (from r in g
                                  select r.Amount).Sum(),
                           MainId = g.Key
                       };

    var mainTbl = from main in t.maintransaction
                  join sub in mainIdAndSum on main.MainTransactionId equals sub.MainId
                  where main.IsEnabled == true && (sub.Sum - main.Amount != 0)
                  select main;

    return mainTbl;
}

1 Ответ

1 голос
/ 23 августа 2011

Я думаю, что это запрос, который вы хотите:

from mt in t.maintransaction
join st in t.subtransaction
    on mt.MainTransactionId equals st.MainTransactionId
    into sts
where mt.IsEnabled
where sts.Sum(x => x.Amount) - mt.Amount != 0
select new
{
    MainTransaction = mt,
    Subtransactions = sts,
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...