[英]Fluent NHibernate Mapping for DDD Model
我一直在尋找解決當前使用Fluent NHibernate映射DDD模型時遇到的問題的解決方案。 如果有人能讓我朝正確的方向前進,那將不勝感激。
基本上,我有要映射的此類:
public class A : EntityObject
{
//assuming some other attributes have been mapped properly
public virtual Location MyLocation { get; private set; }
}
public class Location : EntityObject
{
public virtual string Name { get; private set; }
}
public Class AMap : ClassMap<A>
{
//???? How to map the Location
}
從數據庫pov來看,表“ A”與表“ Location”沒有直接關系。 在訪問LocationId列之前,表“ A”必須使用聯接來遍歷表“ B”和表“ C”,然后可以將其映射到位置表。
在Fluent NHibernate中映射Location對象的最佳方法是什么? 如果有任何不清楚的地方,請告訴我。
任何幫助,將不勝感激?
提前致謝。
我想像UpTheCreek那樣沒有關於您的域的太多信息-您可以將Location建模為擴展Class A的ValueObject。
我看到兩個選擇。 如圖1所示,類A通過LocationRepository與Location有間接關系,您可以在其中獲取GetLocationByA(A a)
在圖2中,您將Location建模為Value對象,該對象是A類的集合的一部分,並通過A的存儲庫加載。 根據您的域模型以及Location和A之間的關系,Location會即時或在A的構造函數期間加載。很抱歉,下面的格式...
public class AMap : ClassMap<A>
{
public AMap()
{
Component(x => x.MyLocation, m =>
{
m.Map(x => x.Name, "Name");
});
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.