Comment ajouter des clauses where facultatives avec QueryOver?Ajout de paramètres optionnels où Nhibernate et QueryOver
TL; DR
Je suis en train de mettre en œuvre un formulaire de recherche pour une application et utilisez QueryOver.
Certains des paramètres de recherche sont facultatifs.
var query =
myDatabase.QueryOver(() => customerAlias)
.JoinAlias(() => customerAlias.Projects,() => projectAlias)
.Where(() => projectAlias.IsClosed >= 1)
... possibly add more stuff
Mais que faire si j'ai 2 conditions? 'query = query.AddWhere (...)'? – LosManos
Il n'y a probablement aucun coût d'efficacité pour faire 'query.Where (condition1) .Where (condition2)' versus 'query.Where (condition1 && condition2)', bien sûr il y a LINQ normal, mais je suspecte que Nhibernate produise le même Requête SQL à partir de ces deux. Mais vous pouvez le faire aussi: http://stackoverflow.com/questions/22944722/what-is-the-best-way-to-dynamically-add-to-a-where-clause-in-a-hibhibate-query # 22948137 Bien que vous n'obtiendrez pas vos alias en ligne alors. – starlight54
Pour ceux qui n'ont pas compris mon commentaire original (ie moi) mon commentaire était sur 'query.Where (...); query.Where (...)' où je pensais que le second appel 'Where' écraserait le premier mais il s'avère qu'ils concaténation à la place; donc la réponse est correcte. – LosManos