我正在尝试锻炼保持我的域更改的最佳位置。我有以下实体:
public class Period
{
public Guid PeriodId { get; set; }
public DateTime StartDate { get; set; }
public DateTime EndDate { get; set; }
}
Trade
{
public Guid TradeId { get; set; }
Trader Instigator { get; set; }
Trader Acceptor { get; set; }
Period period { get; set; }
public long Volume { get; set; }
public decimal Price { get; set; }
}
现在为了创建一个新的交易,我已经把它卸载到一个域服务
tradeService.PlaceTrade(Guid periodId, Guid UserId, decimal price. long volume)
地方交易功能似乎很适合上述领域服务,交易服务坚持交易。我传入了一个 ITradeRepository 类以方便使用。
为了接受交易,我想要以下内容,以便交易的域逻辑位于交易实体内。
Trade trade = tradeRepository.Get(Guid tradeId)
TradeStatus = trade.Accept(userId);
上述问题是 Trade 实体负责持久化数据,因此依赖于 ITradeRepository。
这是这样做的正确方法吗?感觉很脏?或者更好的方法是为交易类创建一个扩展方法以促进接受交易的相同功能?
有什么想法吗?谢谢