0
最好問一個例子。假設我有這些映射:如何查詢NHibernate類映射以找出哪些實體可以引用另一個實體?
public class A
{
internal int Id { get; private set; }
public X X { get; set; }
internal class Map : ClassMap<A>
{
public Map()
{
Id(x => x.Id);
References(x => x.X);
}
}
}
public class B
{
internal int Id { get; private set; }
private IList<X> XList;
internal class Map : ClassMap<B>
{
public Map()
{
Id(x => x.Id);
HasMany(x => x.XList)
.Access.Field();
}
}
}
public class X
{
protected internal virtual int Id { get; private set; }
internal class Map : ClassMap<X>
{
public Map()
{
Id(x => x.Id);
}
}
}
我正在尋找代碼,將接受一個NHibernate的(或FluentNHibernate)配置(或FluentConfiguration)對象,並輸出類似:
A - property member X
B - field member XList
顯然還有很多我沒有考慮像子類映射,三元關係,組件映射等,但我在尋找的是所有地方的列表,其中一個實體存儲在數據庫中時可能會引用另一個實體。
我試過看Configuration.ClassMappings類,但NHibernate.Mapping.RootClass是一個相當怪物,我很快就迷路了。有沒有人有任何關於如何做到這一點的指針(最好不必變得痛苦熟悉NHibernate映射代碼:)