J'essaie de retourner toutes les entités où une propriété donnée n'est pas vide. Le problème est IsNotEmpty()
s'applique uniquement aux collections. Voici l'approche générale que j'ai prise jusqu'à présent, cela ne marche évidemment pas.Nhibernate ICriteria - Vérifier la valeur de la propriété longueur
ICriteria lvCriteria = NHibernateHelper.GetCurrentSession()
.CreateCriteria(typeof(FunctionCall))
.SetMaxResults(100)
.AddOrder(Order.Desc("LogId"));
if (pvMsg.HasValue)
{
lvCriteria.Add(Restrictions.IsNotNull("Msg"))
.Add(Restrictions.IsNotEmpty("Msg"));
}
Des suggestions? Est-il possible d'atteindre ce résultat en vérifiant la longueur de la valeur de la propriété? Je vous remercie!
Je ne comprends pas votre code ou je ne comprends pas ce qui est évident sur ce qui ne fonctionne pas. Pouvez-vous fournir des exemples de données d'entrée et quelques exemples de résultats (attendus et réels)? –
Msg est simplement un champ de texte qui peut être vide, nul ou contenir une certaine valeur. Je voudrais retourner seulement ces entités "FunctionCall" dont la propriété Msg contient une certaine valeur. IsNotEmpty() s'applique uniquement aux collections, pas aux entités individuelles. (c'est-à-dire qu'il retourne vrai si une liste contient des éléments, mais lève une exception si elle est utilisée sur une seule propriété). Étant donné 3 entités FunctionCall avec 3 valeurs séparées "", null, et "ERROR" pour la propriété Msg, je ne m'attendrais qu'à une seule entité renvoyée par ma requête, celle qui contient "ERROR". – alan