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被错误放置。 –