J'ai un mappage HasMany qui a besoin d'une condition. Je travaille partiellement, mais il doit y avoir un meilleur moyen que ce que je suis en train de faire. La condition que j'utilise doit regarder une propriété sur une autre table à laquelle je me joins. Ce que j'ai jusqu'à présent est:Fluid NHibernate - HasMany cartographie avec condition
HasMany<MetaData>(x => x.MetaData).Table("MetaData")
.KeyColumn("DefinitionID")
.KeyColumn("TableID")
.Where("metadatade1_.SourceTable = 'Providers'")
.Cascade.SaveUpdate();
Dans le code ci-dessus, l'where fait référence à « metadatade1_ », parce qu'il essaie de saisir le nom complet, et est le nom NH génère. J'ai essayé d'employer "MetaDataDefinitions.SourceTable" (MetaDataDef ... est le nom de table physique), et aussi juste "SourceTable" par lui-même, cependant aucun de ceux-ci n'a fonctionné. Y at-il un moyen de ne pas essayer de qualifier complètement le nom sur la condition et de simplement passer "SourceTable = 'Fournisseurs'" OU est-il possible de faire référencer le nom généré sans que je doive le brancher manuellement? dans?
Pas exactement j'espérais, mais merci pour la réponse! Je vais suivre votre conseil et créer une requête pour récupérer ces données. – Brosto