簡體   English   中英

DDD模型的流暢NHibernate映射

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM