假设我需要为StackOverflow实现域模型。如何在你的域类中实现“最后20个东西”属性?
如果我在做ORM,我如何定义(和映射)属性来获取“最后的评论”和其他“最后”的东西? 它在我看来应该反映在域模型中。
有时候我可能需要“所有的意见”虽然...
假设我需要为StackOverflow实现域模型。如何在你的域类中实现“最后20个东西”属性?
如果我在做ORM,我如何定义(和映射)属性来获取“最后的评论”和其他“最后”的东西? 它在我看来应该反映在域模型中。
有时候我可能需要“所有的意见”虽然...
我可能会通过我的ORM工具的影响,但我认为这是一个查询,而不是一个域属性。该域包含关联,并且存储库封装了您正在描述的查询等查询。
您会查询您的存储库中特定用户的最新评论。像
IList<Comment> recentComments = repository.GetRecentComments(user,20);
你可以在模型中做到这一点,但取决于你期望有多少评论,我会避免它。模型不应该知道如何填充本身,这是存储库的工作;然而,如果你使用的是类似NHibernate的东西,它会在那里。
public class User{
public IList<Comment> Comments { get;set;}
public IList<Comment> GetRecentComments()
{
// Logic
}
}
在这种实现你总是要加载所有的意见,以获得最后的20不是一个大问题,如果只有50的意见,但如果有5000个意见你已经有了相当多的的开销。
所以你会有一个属性“评论”,并根据你调用哪个服务层方法(GetAllComments或GetLastComments)你会得到不同的数据集里面? – badbadboy 2008-11-20 19:24:39