NHibernate Fluent, joined-subclass cartographie
Je suis en train de mapper un joined-subclass scénario à l'aide de Fluent NHibernate.
J'ai une classe Entité définie dans l'espace de noms de Base, et une classe
Sous-classe : Entité dans l'espace de noms SomeModule
Maintenant, je ne veux évidemment pas la classe de l'Entité de connaître ses dérivés
les types, les SomeModules espace de noms de références de Base - et non l'inverse
autour de.
Tous les exemples que j'ai pu trouver, utilisez quelque chose comme:
public class EntityMap : ClassMap<Entity> {
public EntityMap() {
Id(x => x.Id)
var subClassMap = JoinedSubClass<SubClass>("SubClassId", sub => sub.Map(x => x.Id));
subClassMap.Map(x => x.SomeProperty)
...
}
}
Ce n'est tout simplement pas fonctionner dans mon cas - je besoin de quelque chose de semblable à la
NHibernate de mappage xml:
<joined-subclass name="SubClass" extends="Entity, Core" >
<key column="SubClassId" foreign-key="FK_KollegiumEntity"/>
<property name="Name" length="255" not-null="true" />
...
</joined-subclass>
Quelqu'un a réalisé cela avec NHibernate Fluent?
OriginalL'auteur Martin Faartoft | 2008-11-25
Vous devez vous connecter pour publier un commentaire.
Je pense que l'API a changé depuis que cette question a été posée, mais cela fonctionne pour moi:
Je crois KeyColumn est nécessaire uniquement si elle est différente de celle d' 'Baseclassname_id'
Remarque: Il doit également être un
ClassMap<SomeBaseClass>
pour la classe de base qui SomeSubClass s'étend.Je suis juste en voyant cela, désolé pour la lenteur de la réponse. Je ne suis pas au courant d'un moyen de spécifier un autre KeyColumn sur la classe de base côté -KeyColumn propriété signifie simplement que, les parents et/ou de la base de la colonne de la clé primaire. J'ai pris un coup d'oeil à la doc, juste au cas où il y a quelque chose que j'ai peut-être mal compris.
avez-vous jamais trouver la réponse à votre question? Peut une sous-classe de la carte de retour à son parent, mais w/o en utilisant le parent de l'ID de la colonne?
malheureusement non, et je me suis arrêté à l'aide de NHibernate depuis.
hey pensé que je demanderais! J'ai fini de poster mon propre question: stackoverflow.com/q/12717935/61654. J'espère obtenir une réponse. 😉
OriginalL'auteur Sean Lynch
Désolé manqué votre commentaire, trouvé ce
Espère que cela aide si vous ne l'avez pas déjà résolu.
OriginalL'auteur Magnus Bertilsson
Magnus (ou Prise),
Avez-vous de comprendre comment l'utiliser qu'en dernier exemple dans le parent de la cartographie? Cela a fonctionné pour moi, mais je n'aime pas l'instanciation de la SubClassMap moi-même:
Qui a produit une requête similaire à:
OriginalL'auteur Nagyman
Magnus, j'ai eu exactement le même genre de problème, et votre suggestion triées.
Le deuxième paramètre à JoinedSubClass prend un SubClassPart Action à l'encontre de votre objet de type SubT. Donc vous avez seulement besoin de mapper les champs supplémentaires dans votre sous-classé objet.
Que l'exemple précédent, le mappage d'un Id, donc je suppose que c'est un id différent à la valeur de base et la sous-classe joindre, sinon vous auriez du commencer à voir SqlParameterCollection erreurs à travers.
OriginalL'auteur chris raethke
Bonjour a quelque chose comme il ya quelques jours.
Espère que cela aide
OriginalL'auteur Magnus Bertilsson