6
我所有的實體和值對象都實現標記接口IEntity
和IValueObject
。我已經設定好之後,被視爲組件,像這樣:如何使用Fluent NHibernate自動映射組件集合?
public override bool IsComponent(Type type)
{
return typeof(IValueObject).IsAssignableFrom(type);
}
public override bool ShouldMap(Type type)
{
return typeof(IEntity).IsAssignableFrom(type) || typeof(IValueObject).IsAssignableFrom(type);
}
不幸的是,這似乎並沒有允許擁有價值對象的集合被automapped作爲組件的集合實體。例如:
public class MyEntity : IEntity
{
public IList<MyValueObject> Objects { get; set; }
}
public class MyValueObject : IValueObject
{
public string Name { get; set; }
public string Value { get; set; }
}
有沒有什麼辦法來定義一個慣例,例如,在任何時間IEntity
具有實現IValueObject
的類型的IList
,它將映射我彷彿指定:
HasMany(x => x.Objects)
.Component(x => {
x.Map(m => m.Name);
x.Map(m => m.Value);
});
我不想做的是必須爲每個類手動執行這些覆蓋,並一次又一次地寫出value對象的每個屬性。