我在DDD有界上下文中使用多個聚合根。在DDD中查詢多個存儲庫中的數據
例如
public class OrderAggregate
{
public int ID {get;set;}
public string Order_Name {get;set;}
public int Created_By_UserID {get;set;}
}
public class UserAggregate
{
public int ID {get;set;}
public string Username {get;set;}
public string First_Name {get;set;}
public string Last_Name {get;set;}
}
我使用SQL關係數據庫中,以堅持域對象。每個聚合根都匹配一個存儲庫。
如果我想查找由John Doe創建的訂單(按多個總計進行查找),那麼DDD的方式是什麼?
添加FIRST_NAME和另外姓氏爲OrderAggregate爲了增加FindByUserFirstLastName方法OrderRespository,但可能引起兩個總根源
之間的數據一致性問題,創建一個原始的SQL查詢和訪問DB直接以跨度搜索翻過「庫」
使用「發現者」,以直接從DB
加入實體複製數據necessa RY查詢完成到一個新的聚集根如
public class QueryOrderAggregate
{
public int ID { get; set; }
public string Order_Name { get; set; }
public int Created_By_UserID { get; set; }
public string First_Name { get; set; }
public string Last_Name { get; set; }
}
不要讓數據庫模型決定了你的域模型 – MJK
你有兩個限定語境:訂購和UserManagement –
@ConstantinGALBENU不,那是錯誤的解釋 – mko