聚合根域逻辑

时间:2011-10-31 15:31:52

标签: c# asp.net-mvc-3 entity-framework-4.1 domain-driven-design

假设我有以下3个类:

public class User 
{
   public int UserId { get; set; }
   public ICollection<Location> { get; set; }
}
public class Location
{
   public int LocationId { get; set; }
   public int UserId { get; set; }
   public ICollection<Sale> Sales { get; set; }
}
public class Sale
{
  public int SaleId { get; set; }
  public int LocationId { get; set; }
  public decimal Cash { get; set; }
}

我在单个页面上有一个要求,我将显示已登录用户的所有位置的总现金。我想我会将GetTotalCash()方法放在Locations类上并实现LINQ总结但问题是我将通过User类访问Locations对象,因为Location属性是User类上的ICollection,所以我将无法调用summation方法。我应该把逻辑放在User类上吗?但这没有意义,因为它不是User对象的行为或是吗?

顺便说一句,我使用的是EF 4.1 Code First和MVC 3。

非常感谢!

1 个答案:

答案 0 :(得分:0)

在locations类中实现GetTotalCash()方法,并在用户类中实现GetCashForLocation()以获取所选位置的现金(将把调用委托给位置类的GetTotalCash() ,并在用户类中实现GetTotalCash(),它将迭代所有位置并总结它们的现金。

然后根据信息专家类分配代表性,并从聚合根

委派