Très bon!!! Merci! Cela m'a aidé à résoudre la NHIBERNATE d'ERREUR : "impossible de trouver un des critères de correspondance info fournisseur", merci pour l'exemple simple.
Juste après avoir résolu un problème connexe et est finalement arrivé à une solution, j'ai pensé que je pourrais partager avec vous la réponse ici:
En supposant que vous voulez la requête, avec une condition supplémentaire sur la sous-requête:
SELECT * FROM FooBar fb
WHERE EXISTS (SELECT FooBarId FROM Baz b WHERE b.FooBarId= fb.Id
AND Quantity=5)
En supposant que vous avez une référence sur le Baz classe à la mère, qui s'appelle, disent FooBarRef [ en parlant Couramment Carte de classe que vous souhaitez utiliser les Références() la méthode ], vous créez la requête comme suit:
Je ne suis pas convaincu à 100% sur le codage en dur des alias "cela", qui est l'alias de NHibernate attribue automatiquement à la racine de l'entité (table) dans la requête, mais c'est le seul moyen que j'ai trouvé pour référence la clé de la mère de la requête de table à partir de l'intérieur de la sous-requête.
En effet... et vous m'avez donné l'idée qu'il peut être fait d'une manière simple et sans Nhibernate Lambda extensions. J'ai édité ma réponse à inclure cette option.
Ici est de savoir comment vous pouvez le faire:
...en supposant qu'il existe une collection de propriété (un-à-plusieurs) "Bazs" dans le FooBar objet.
Vous pouvez également détaché des critères tels que:
Cela m'a aidé à résoudre la NHIBERNATE d'ERREUR : "impossible de trouver un des critères de correspondance info fournisseur", merci pour l'exemple simple.
OriginalL'auteur tolism7
Juste après avoir résolu un problème connexe et est finalement arrivé à une solution, j'ai pensé que je pourrais partager avec vous la réponse ici:
En supposant que vous voulez la requête, avec une condition supplémentaire sur la sous-requête:
En supposant que vous avez une référence sur le Baz classe à la mère, qui s'appelle, disent FooBarRef [ en parlant Couramment Carte de classe que vous souhaitez utiliser les Références() la méthode ], vous créez la requête comme suit:
Je ne suis pas convaincu à 100% sur le codage en dur des alias "cela", qui est l'alias de NHibernate attribue automatiquement à la racine de l'entité (table) dans la requête, mais c'est le seul moyen que j'ai trouvé pour référence la clé de la mère de la requête de table à partir de l'intérieur de la sous-requête.
OriginalL'auteur Trevor
J'ai travaillé sur la façon de faire cela en utilisant la IsNotEmpty expression. Ici, c'est à l'aide de NHibernate Lambda Extensions:
OriginalL'auteur cbp