我想在我的应用程序中使用ASP.Net WebApi实现域单元模式的域驱动设计。域驱动的设计 - 数据库事务管理
1)我应该在哪里开始/提交交易(API控制器,应用层/服务,DAL,域层/服务)?
2)什么是最好的方式来管理复杂的应用程序中的交易与许多商业规则(AOP,显式调用或其他方式)?
3)在更大的事务中重用一段代码与事务的最佳方式是什么? i.g.我有独立的用例 - 关闭发票 - 其中已包含交易。此外,此代码包含一些非域名代码,如日志记录,统计计数等。 我想在更复杂的用例中重复使用此代码 - 支付发票,扣除佣金和关闭发票。
3.1)如何处理内部事务问题(流行的数据库不支持它)?
3.2)层应该负责什么?
我知道答案可能取决于一个特定的项目。但是,考虑任何可行的实际项目技术将是很好的
你需要首先学习DDD。此时您正在使用DDD名称进行CRUD。 – MikeSW
@MikeSW,我读过Eric Evans的DDD,但我仍然不明白如何在域驱动设计的应用程序中正确管理数据库事务。 – Albert
这是因为DDD和DB事务是非常不同的事情。开始阅读Vaughn Vernon的书或我的[DDD教程](http://blog.sapiensworks.com/post/2016/07/14/DDD-Aggregate-Decoded-1)以了解DDD的真正含义。我花了大约7年的时间才真正了解DDD :)但今天有更多的资源比以往任何时候都多。祝你好运! – MikeSW