我有基于3层架构的ASP.NET Web应用程序。 (演示,业务和数据访问层)。
我将开发插入新客户端记录的函数。根据业务规则,新客户端记录必须包含客户端信息,监护人信息和客户端日志历史记录(客户端创建日期和客户端激活日期)。
当将新客户端记录插入数据库时,我需要插入来将任何相关记录写入数据库(即,基于1对多关系数据库设计的监护人记录和日志历史记录)。
在DAL下,我已经创建了函数:InsertClientRecord
,InsertClientGuardian
和InsertClientLogHistory
函数。
我想创建一个调用InsertClientMain
的main函数,其中包含有序的步骤:
InsertClientRecord (ClientRecords);
InsertClientGuardian (ClientGuardian);
InsertClientLogHistory ("Client is created");
InsertClientLogHistory ("Client is activated");
由于InsertClientMain
包含业务规则(插入客户端日志历史记录),我应该在Business Layer或DAL下创建此功能吗?
另外,我想将事务范围包装在InsertClientMain
函数中。如果InsertClientMain
在业务层中,我可以在业务层中使用事务范围吗?我读了一篇文章,Business层不能使用任何与数据库事务或持久性相关的东西(DAL应该处理所有数据库事务)。
谢谢