假設我有以下的聚合根:尋呼實體(的集合體)
public class Aggregate
{
public int Id {get; set;}
public List<Entity> Entities {get; set;}
}
而下面的庫:
public class AggregateRepository
{
public Aggregate GetPaged(int Id)
{
return db.Aggregate
.Include(x=>x.Entities)
.Find(id)
}
}
問題:怎麼能我得到一個分頁和排序的實體列表?哪些是最好的方法來獲得實體分頁和排序,但也與綜合信息?
編輯:
什麼是你考慮以下的方法呢?
public class AggregateRepository
{
public IEnumerable<Entity> GetEntitiesPaged(int id)
{
return db.Aggregate
.Include(x=>x.Aggregate)
.Where(x=>x.Id = id)
.Select(x=>x.Entities)
.Take(20);
}
}
而不是返回一個聚集對象,我可以收到一個包含聚合對象的實體列表(在這種情況下是20個實體)。在DDD模式下處理聚合是否是一種好方法?
爲了給你一個有用的答案,我想知道你正在嘗試實現分頁和排序的實體列表。 - 您需要在您的寫入或讀取模型中使用分頁和排序的實體列表嗎? - 您打算使用此頁面向用戶顯示實體嗎? - 您是否要逐頁閱讀(查詢)實體以強制您的域中的某些不變量? –