0

J'apprécierais vraiment de l'aide avec un problème que j'ai.Fluent problème nhibernate, requête

classe L possède une collection de R et R possède une collection de Q. Chaque instance de R peut être existe dans plusieurs instances de L et chaque instance de Q peut exister dans plusieurs cas de R.

Tout fonctionne bien, sauf que j'ai une fonction que je ne peux pas comprendre comment écrire.

J'ai une fonction qui reçoit une instance/objet de R et Q. Donc, avec R et Q je voudrais interroger sur L et découvrir où R est utilisé. Je voudrais aussi savoir si et où Q est utilisé.

Merci pour votre question et aidez-nous!

Répondre

1

Révision: fixe misstyping

R myR = ...; 
Q myQ = ...; 

var LsWithMyRandFlagIfQisUSed = session.QueryOver<L>() 
    .JoinQueryOver(l => l.Rs) 
    .Where(r => r.Id == myR.Id) 
    .List<L>() 
    .Select(l => new 
    { 
     L = l, 
     QisUsed = l.Rs.Any(r => r.Qs.Contains(myQ)), 
    }); 

Edit: a ajouté la syntaxe LINQ havent Testet

R myR = ...; 
Q myQ = ...; 

var LsWithMyRandFlagIfQisUSed = 
    from l in session.Query<L>() 
    where l.Rs.Contains(myR) 
    select new 
    { 
     L = l, 
     QisUsed = l.Rs.Any(r => r.Qs.Contains(myQ)), 
    }); 
+0

Il coutures j'ai oublié de répondre ici. Merci pour la tentative, mais je ne pouvais pas obtenir que ça fonctionne correctement. – Johan

+0

quel est le problème? Peut-être que je peux le réparer – Firo

+0

Voulez-vous dire cela fonctionne pour vous? – Johan