/ / Mapowanie klasy pochodnej z dodatkową właściwością kolekcji w nhibernate - nhibernate, dziedziczenie, fluent-nhibernate

Mapowanie klasy pochodnej z dodatkową właściwością kolekcji w nhibernate - nhibernate, dziedziczenie, fluent-nhibernate

Próbuję użyć table-per-subclass (domyślnie fluff-nhibernate automaps) o strukturze klasy, jak poniżej:

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();
}
}
}

Zamiast dodawać nową tabelę "IncludesXProduct" do reprezentowania mapowania wiele-do-wielu, dodaje ona właściwość "ProductPackageId" do tabeli produktów. Oczywiście uporanie się z tym schematem nie działa.

Czy przeoczyłem coś prostego lub czy tego typu rzeczy nie są tak naprawdę obsługiwane przez NHibernate?

Odpowiedzi:

0 dla odpowiedzi № 1

Można to zrobić za pomocą NHibernate. Niestety, moja płynna składnia nie jest zbyt dobra, ale wygląda na to, że FNH w jakiś sposób odnosi się do związku jako do wielu, a nie do wielu-do-wielu.

Jeśli oznaczysz swoje pytanie "fluent-nhibernate", możesz uzyskać odpowiedź od bardziej kompetentnych osób.