Ich habe einige Klassen und wollen, dass sie korrekt Datenbank abzubilden:fließend nhibernate Komponente one-to-many
public class A
{
public virtual Guid Id { get; private set; }
public virtual ComponentClass Component { get; set; }
}
public class ComponentClass
{
public virtual IList<B> Elements { get;set; }
}
public class B
{
public virtual Guid Id { get; private set; }
public virtual DateTime Time { get; set; }
}
I Karte sie fließend Zuordnungen wie die Verwendung von:
public class AMap : ClassMap<A>
{
public A() {
Id(x => x.Id);
Component(x => x.Component,
c => c.HasMany(x => x.Elements).Inverse().Cascade.All());
}
}
public class BMap : ClassMap<B>
{
public B() {
Id(x => x.Id);
Map(x => x.Time);
}
}
Als ich Speichern Sie meine Entity. Ich habe Klasse A wie erwartet einer Tabelle und Klasse B einer anderen zugeordnet. Aber ich habe Null in Component_id Spalte. Können Sie mir sagen, was fehlt mir hier?
Ok, ich habe habe mein Problem gelöst - ich kann die ID meiner "Eltern" -Klasse verwenden. Die Komponentenzuordnung wird also zu: c.HasMany (x => x.Elements) .Cascade.All(). Column ("Id"); – coding4beer