Nhibernate 3 Linq - jointures internes
Je suis du test de nhibernate 3 CR, mais ne parvient pas à créer la requête SQL suivante à l'aide de Linq:
select *
from Users as {user}
inner join Test as test on test.UserId = user.Id
inner join Release as release on release.TestId = test.TestId
where Release.Status = 1
order by count(release.Status) desc;
Je n'ai pas eu jusqu'à présent, mon code est comme ça et me donne quelque chose de complètement différent:
var users = from user in Session.Query<User>()
join test in Session.Query<Test>() on user.Id equals test.User.Id
join release in Session.Query<Release>() on test.Id equals release.Test.Id
where release.Status == 1
orderby release.Status
descending
select user;
Est-il de ressources sur la façon d'utiliser les jointures internes avec linq? Et que dois-je faire avec:
order by count(release.Status)
Est-ce quelque chose qui doit être fait avec QueryOver à la place?
Pourquoi avez-vous de définir des relations entre les entités dans les requêtes au lieu de dans la cartographie?
Je viens de tester linq sur une application existante. Donc, c'est comment le SQL ressemblait. Je peux sentir une réécriture de la mappages, mais le point ici est de voir comment beaucoup de Linq to nhibernate avait évolué. Et il semble que ce n'est pas très utilisable.
Je viens de tester linq sur une application existante. Donc, c'est comment le SQL ressemblait. Je peux sentir une réécriture de la mappages, mais le point ici est de voir comment beaucoup de Linq to nhibernate avait évolué. Et il semble que ce n'est pas très utilisable.
OriginalL'auteur bondehagen | 2010-11-25
Vous devez vous connecter pour publier un commentaire.
D'abord, de définir des relations dans votre modèle, au lieu d'essayer de joindre par id.
Alors vous serez en mesure de le faire:
Tout ce qui manque est la orderby, dont je ne pense que c'est correct (que vous essayez de faire une commande d'un agrégat, mais vous n'êtes pas la spécification d'un groupe par)
montrez-moi une session de profilage avère pertinent.
Je ne vois pas actuellement, mais je sais comment à partir d'œuvres.
OriginalL'auteur Diego Mijelshon
Autant que je sache, NH n'est toujours pas en charge les jointures dans les requêtes linq.
Afin de mieux utiliser les requêtes HQL, ou même QueryOver (je pense que pour les requêtes simples, c'est le meilleur). Regardez cet exemple:
OriginalL'auteur Genius