在我的域模型中,我有一个名为“Inventory”的实体。要在库存中进行特定移动,我需要访问业务级别配置以进行检查。
我在库存实体中有以下方法
public class Inventory
{
// Some codes, properties and arguments are omitted for brevity.
public int InventoryId { get; set; }
public virtual Product Product { get; set; }
public virtual IList<InventoryTransaction> Transactions { get; set; }
public virtual IList<Stock> Stocks {get; set; }
// ........
public void purchase(double qty, decimal cost) { //....... }
public double QuantitiesOnHand() { //..... }
public decimal CostOfItemsOnHand() { //....... }
// This method require to access certain configuration in order to
// process the sale of item.
public decimal Sell(double qty, decimal cost) { //..... }
}
要处理销售,我需要访问某些配置。注入配置接口以在该实体内处理销售是否是一种好习惯。会不会破坏DDD的纯度?或者我应该只将这个“Sell()”方法移动到域服务层吗?
编辑 :
public virtual IList<Stock> Stocks {get; set; }
已添加到上述类定义中,该类定义包含特定库存项目的库存。