Problema di recupero dati da bag

25 views
Skip to first unread message

Mario Pagni

unread,
Sep 28, 2017, 11:38:05 AM9/28/17
to NHibernate-It
Nel seguente scenario come è possibile che la query SQL di recupero dei dati del bag usi il valore di SectionId e non ImageCarouselId come ho cercato invano di ottenere?
- SectionId è la primaryKey per poter ricercare in  ImageCarousel col comando Repository<ImageCarousel>.FindById(...) che garantisce performance eccezionali di ricerca
Ho perso invano tantissimo tempo per cercare di trovare la soluzione.
Qualcuno è in grado di aiutarmi?


Classe di intestazione

   public class ImageCarousel {
      public virtual Int32 ImageCarouselId { get; set; }
      public virtual Int32 SectionId { get; set; } // PrimaryKey
      ......
      public virtual IList<ImageCarouselDetail> Details { get; set; }
   }

Classe di dettaglio

   public class ImageCarouselDetail {
      public virtual Int32 ImageCarouselDetailId { get; set; }
      public virtual Int32 ImageCarouselId { get; set; }
      ......
      public virtual Int32 Position { get; set; }
   }

Mappaggio

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">

   <class name="ObjectWeb.Core.Cms.Domain.ImageCarousel, ObjectWeb.Core.Cms" table="cms_ImageCarousels">

      <id name="SectionId" column="SectionId" type="Int32" unsaved-value="-1">
         <generator class="assigned">
            <param name="sequence"></param>
         </generator>
      </id>

      <property name="ImageCarouselId" generated="insert" insert="false" update="false" />

      <bag name="Details" inverse="true" lazy="true" cascade="all-delete-orphan">
         <key column="ImageCarouselId" />
         <one-to-many class="ObjectWeb.Core.Cms.Domain.ImageCarouselDetail, ObjectWeb.Core.Cms" />
      </bag>

   </class>
</hibernate-mapping>

Giuseppe Guzzi

unread,
Sep 30, 2017, 2:20:10 AM9/30/17
to NHibernate-It
Ciao,
Manca il mapping della classe ImageCarouselDetail ma dalle classe vedo che la stessa non ha un riferimento a ImageCarousel che invece serve per istruire NH ha usare una chiave esterna come sia PK. Qui hai un esempio


 ImageCarouselId dovrebbe avere un vincolo Unique.

--
Per mandare un messaggio a questo gruppo, invia una email a nh...@googlegroups.com
Per annullare l'iscrizione a questo gruppo, invia un'email a nh-it-unsubscribe@googlegroups.com
Per maggiori opzioni, visita questo gruppo all'indirizzo http://groups.google.com/group/nh-it?hl=it
---
Hai ricevuto questo messaggio perché sei iscritto al gruppo "NHibernate-It" di Google Gruppi.
Per annullare l'iscrizione a questo gruppo e non ricevere più le sue email, invia un'email a nh-it+unsubscribe@googlegroups.com.
Per altre opzioni visita https://groups.google.com/d/optout.
Reply all
Reply to author
Forward
0 new messages