従来のado.netを使用した集約ルートの簡単なCRUDステートメントを誰かに見せてもらえますか?前もって感謝します!
1 に答える
1
(これは、GUIDまたはデータベースで生成されていない主キーが使用されることを前提に記述されています)また、接続管理などの多くのボイラーコードをリポジトリの基本クラスに移動する必要があります。Orderが集約ルートである場合、OrderLineRepoをアセンブリに対してプライベートにする必要があります。
public class OrderRepository : Repository
{
public void Save(Order order)
{
if(order.IsDirty)
{
//sets up connection if required, command and sql
ICommand command = BuildCommandForSave(order);
command.Execute();
OrderLineRepository orderLineRepo = GetOrderLineRepo();
foreach(OrderLine line in order.OrderLines)
{
orderLineRepo.Save(line);
}
}
}
}
ただし、これは本当に単純な単純な実装であり、十分にテストされた永続性レイヤーの要件が重要であるため、DDDを実行する場合は、永続性にnHibernateのようなORMを個人的に利用することを強調します。
また、これはIsDirty関数が子を考慮に入れることを前提としています-注文がダーティだけでなく、新しい/編集されているかどうかを確認する手段も必要になります
于 2009-08-20T09:07:23.713 に答える