任何人都可以向我展示使用传统 ado.net 聚合根的简单 CRUD 语句吗?提前致谢!
问问题
927 次
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 回答