J'utilise NHibernate et le modèle de référentiel dans ma dernière application. J'ai 3 tables/entités: Régions, Tags et Traductions avec le schéma suivant.Utilisation de NHibernate et du modèle de référentiel pour renvoyer une collection enfant d'éléments qui n'existent pas
Regions
Id
RegionName
Tags
Id
FilePath
FileName
TagContent
Translations
Id
RegionId
TagId
Translation
Le tableau des balises contient une liste de phrases (balises), l'application permet à un utilisateur de spécifier une traduction pour chaque balise. Alors disons que la table des tags contient 50 phrases (tags). Une fois que l'utilisateur a traduit 10 de ces balises en espagnol par exemple, l'entité régionale pour l'espagnol aura une collection enfant de 10 balises traduites. J'aimerais pouvoir avoir une propriété/méthode sur la classe region qui renvoie une collection enfant des 40 balises non traduites.
Je réalise que je peux y parvenir en récupérant toutes les balises et en testant pour voir si la balise existe ou non dans la collection enfant des balises tranlées de l'entité de la région. Mais tout se passe sur le client. Je veux que ça se passe sur le serveur (que SQL fasse le travail).
Cela peut-il être réalisé avec NHibernate. Que seraient mes mappings (j'utilise FluentNHibernate)
Existe-t-il un enregistrement de traduction pour les traductions qui n'existent pas encore? Je veux dire, est le disque là, mais avec un champ de traduction NULL? Si oui, alors vous pouvez récupérer toute la collection de Traductions pour la Région et filtrer sur le champ Traduction étant nul ... – David
... Si ce n'est pas le cas, alors ce que vous demandez en vaut: NHibernate retournera un liste des objets de traduction 'qui n'existent pas'? Non, ça ne peut pas. De quoi auraient-ils l'air? – David
Vous pouvez utiliser une requête linq ou hql pour renvoyer une liste des balises pour lesquelles aucun enregistrement de traduction associé n'existe. Mais il n'y a aucun moyen d'exprimer cela en termes d'associations d'objets auxquelles je peux penser. – David