Je fais de l'héritage par table et tout fonctionne très bien - mais je remarque que quand je veux que l'entité de base (données de la table de base) NHProf montre une gauche outter join sur l'entité enfant/(table liée)Comment éviter une jointure en utilisant NHibernate 2.1 par héritage de table
Comment puis-je définir le comportement par défaut pour interroger uniquement les données nécessaires? Par exemple: lorsque je veux une liste d'éléments parents (et uniquement ces données), la requête renvoie uniquement moi cet élément.
en ce moment ma correspondance est semblable à ce qui suit:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="FormBase, ClassLibrary1" table="tbl_FormBase">
<id name="BaseID" column="ID" type="Int32" unsaved-value="0">
<generator class="native" />
</id>
<property name="ImportDate" column="ImportDate" type="datetime" not-null="false" />
<joined-subclass table="tbl_Form" name="Form, ClassLibrary1">
<key column="ID"/>
<property name="gendate" column="gendate" type="string" not-null="false" />
</joined-subclass>
</class>
</hibernate-mapping>
Et l'exemple où je veux toutes les données de retour vs seulement l'entité mère est indiqué ci-dessous:
Dim r As New FormRepository()
Dim forms As List(Of Form) = r.GetFormCollection().ToList()
Dim fbr As New FormBaseRepository()
Dim fb As List(Of FormBase) = fbr.GetFormBaseCollection().ToList()
Ahh ... - Y a-t-il une autre approche de ce problème d'héritage qui va séparer ma table de base si je demande cette entité et non l'enfant? (maintenant chaque élément enfant a sa propre table) –
J'ai mis à jour ma réponse ci-dessus - trop de choses pour entrer dans le commentaire – ChssPly76
Eh bien, je ne pense pas que c'est un gros problème dans mon POC actuellement, mais cette classe de base est héritée par presque 12 autres classes dans mon application de production ... donc je suis un peu inquiet (peut-être que je ne devrais pas être comme vous l'avez mentionné - chacun serait une jointure indexée) –