ドメインの変更を永続化するのに最適な場所を見つけようとしています。私は次のエンティティを持っています:
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に依存していることです。
これはこれを行う正しい方法ですか?汚れた感じ?または、トレードを受け入れるための同じ機能を容易にするために、トレードクラスの拡張メソッドを作成することでより良い方法を実行しますか?
何かご意見は?ありがとう