2009-08-08 4 views
0

Ich versuche, die Tabelle pro Unterklasse (die fließend-nhibernate Automaps von Standard) mit einer Klassenstruktur wie folgt zu verwenden:Zuordnen einer abgeleiteten Klasse mit zusätzlichen Sammlung Eigenschaft in nhibernate

public class Product 
{ 
    public virtual int Id{ get; set; } 
    public virtual string Title{ get; set; } 
} 

public class ProductPackage : Product 
{ 
    public ProductPackage(){ Includes = new List<Product>(); } 
    public virtual IList<Prodcut> Includes{ get; private set; } 

    [EditorBrowsable(EditorBrowsableState.Never)] 
    public class ProductPackageAutoOverride : IAutoMappingOverride<ProductPackage> 
    { 
     public void Override(AutoMap<ProductPackage> mapping) 
     { 
      mapping.HasManyToMany(x => x.Includes) 
       .WithTableName("IncludesXProduct") 
       .WithParentKeyColumn("ProductId") 
       .WithChildKeyColumn("IncludesProductId") 
       .Cascade.SaveUpdate(); 
     } 
    } 
} 

Statt Wenn Sie eine neue Tabelle "IncludesXProduct" hinzufügen, um die Viele-zu-Viele-Zuordnung darzustellen, fügt sie der Produkttabelle eine Eigenschaft "ProductPackageId" hinzu. Natürlich funktioniert das Fortbestehen dieses Schemas nicht.

Habe ich etwas Einfaches verpasst oder wird diese Art von Sache nicht wirklich von NHibernate unterstützt?

Antwort

0

Dies ist mit NHibernate möglich. Leider ist meine fließende Syntax nicht sehr gut, aber es sieht so aus, als ob FNH die Beziehung irgendwie als viel-zu-eins und nicht als viele-zu-viele betrachtet.

Wenn Sie Ihre Frage mit "fluent-nhibernate" markieren, erhalten Sie möglicherweise mehr sachkundige Antworten.