1
說我有這樣的一個簡單的模型(一個相當大的應用程序的一小部分)混亂
public class EHR : IEntity
{
public int ID { get; set; }
public string UserName { get; set; }
public DateTime CreationDate { get; set; }
public virtual ICollection<PhysicalTest> PhysicalTests { get; set; }
}
public class PhysicalTest : IEntity
{
public int ID { get; set; }
public virtual EHR Ehr { get; set; }
public Boolean IsDeleted { get; set; }
}
,我想一個簡單的方法來獲得未刪除的physicalTests對於給定的EHR。
所以,我可以想到三種方法來做到這一點。
一個簡單的添加到我的EHR類的方法。(它似乎是一個壞主意,因爲我不想從anemic domain model遭受)
public IEnumerable<PhysicalTest> ActivePhysicalTests()
{
return this.PhysicalTests.Where(!m=>m.IsDeleted).ToList();
}
另一種是 下創建一個擴展方法一個EHRRepositoryExtensions類:
public static class EHRRepositoryExtensions
{
public static IEnumerable<PhysicalTest> Active(this IEnumerable<PhysicalTest> physicalTests)
{
return physicalTests.Where(test => !test.IsDeleted).OrderByDescending(test => test.CreationDate).ToList();
}
}
我也認爲我可以延長我的IRepository包括僅返回的arent刪除physsicalTests的方法。
像
pubic class EHRRepository : IRepository<EHR>
{
//TODO: method that returns only the physsicalTests that arent deleted.
}
我仍然試圖掌握在DDD的很多概念,我希望它是純越好。
您會推薦哪種方法? 什麼是這樣的主題的經驗法則?
請幫忙。
不應該返回this.PhysicalTests.Where(!m => m.IsDeleted).ToList();返回this.PhysicalTests.Where(m =>!m.IsDeleted).ToList(); NOT被錯誤放置。 –