Linq groupe par sur plusieurs table et inner join

J'ai une requête SQL et je tiens à le réécrire par linq. Cette commande sql ne rejoint deux de la table et de faire un groupe par sur eux. Le problème est dans le groupe. Quand j'ai utiliser group by sur une table, tout est ok et linq commant renvoie le même résultat que la commande sql. Mais quand je veux rejoindre les deux tableau, puis de les regrouper par H. Ucet (par exemple) ensuite, il retourne autre résultat que ma commande sql. Le résultat est le même que lors de l'utilisation d'une Jointure Gauche, mais je veux défaut jointure interne.

C'est la commande sql:

string dotazBankUcty = @"SELECT 
 H.UCET, 
 SUM(H.MD) AS MD, 
 SUM(H.DAL) AS DAL , 
 SUM(H.MD_M) AS MD_M, 
 SUM(H.DAL_ENA) DAL_M, 
 MAX(UBUC.KOD) AS KOD 
 FROM ACCOUNT H 
 inner join UBU on H.UCET = UBU.UCET GROUP BY H.UCET";

J'essaie de réécrire par cette linq commande.

var accountQuery = new XPQuery<ACCOUNT >(CoreHelper.DataSession);

var ubuQuery = new XPQuery<UBU>(CoreHelper.DataSession);

var resultBankyUcty = (from h in accountQuery 
    join u in ubuQuery on h.CompoundKey1.UCET equals u.UCET
    group new { h, u } by new { h.CompoundKey1.UCET } into gUcty
                    select new
                    {
                    Ucet = gUcty.Key.UCET,
                    MD = gUcty.Sum(k => k.h.MD),
                    DAL = gUcty.Sum(k => k.h.DAL),
                    MD_M = gUcty.Sum(k => k.h.MDM),
                    DAL_M = gUcty.Sum(k => k.h.DALM),
                    KOD = gUcty.Max(k => k.u.KOD)
                    });

Quelqu'un peut m'aider ? Je ne peux pas voir une erreur.

J'utilise devexpress, est-il possible, que devexpress réécrit jointure interne à la gauche de la rejoindre ? En sortie des lignes avec la valeur null en plus.
Ne semble pas si...
Jointure interne est essentiellement left join avec les lignes filtrées où dans votre cas u est null. Donc la plus simple solution serait d'ajouter where u != null condition.
JOINTURE INTERNE ne peut pas être utilisé sur Xpo couche, je dois utiliser une JOINTURE EXTERNE GAUCHE et OÙ la != null

OriginalL'auteur mik3s | 2013-10-16