Ich habe eine Klasse, die von vielen anderen Klassen verwiesen wird:Objekt von vielen verwiesen, ohne Eigentum
class Foo
{
// Some properties
}
class Bar
{
public Foo Foo { get; set; }
}
ich diese Beziehung auf das Bar
Ende abbilden:
class BarMap : ClassMap<Bar>
{
public BarMap()
{
References(b => b.Foo).Cascade.All();
}
}
Dies funktioniert, wenn Ich lösche ein Bar
Objekt, aber ich bekomme Fremdschlüsselkonflikte, wenn ich versuche, ein Foo
Objekt zu löschen. Ich verstehe das, weil NHibernate nicht weiß, dass es Bar
s gibt, die sich darauf verlassen, so glücklich versucht, die Foo
und nicht die Bar
s zu löschen.
Ich weiß, dass ich etwas entlang der Linien von tun können:
class Foo
{
public IList<Bar> Bars { get; set; }
// some properties
}
class FooMap : ClassMap<Foo>
{
public FooMap()
{
HasMany(f => f.Bars)
.Inverse()
.Cascade.AllDeleteOrphans();
}
}
Gibt es eine Möglichkeit Foo
so abzubilden, dass sie weiß um die inverse viele-zu-eins-Beziehung ohne eine Eigenschaft zu Foo
hinzufügen? Ich möchte nicht wirklich eine Sammlung zu Foo
für jeden Objekttyp hinzufügen, der darauf verweist.