C# - 使用业务层或数据访问层(DAL)将业务逻辑将数据插入多个表到数据库?

时间:2017-01-10 06:06:55

标签: c# n-tier-architecture

我有基于3层架构的ASP.NET Web应用程序。 (演示,业务和数据访问层)。

我将开发插入新客户端记录的函数。根据业务规则,新客户端记录必须包含客户端信息,监护人信息和客户端日志历史记录(客户端创建日期和客户端激活日期)。

当将新客户端记录插入数据库时​​,我需要插入来将任何相关记录写入数据库(即,基于1对多关系数据库设计的监护人记录和日志历史记录)。

在DAL下,我已经创建了函数:InsertClientRecordInsertClientGuardianInsertClientLogHistory函数。

我想创建一个调用InsertClientMain的main函数,其中包含有序的步骤:

  1. InsertClientRecord (ClientRecords);

  2. InsertClientGuardian (ClientGuardian);

  3. InsertClientLogHistory ("Client is created");

  4. InsertClientLogHistory ("Client is activated");

  5. 由于InsertClientMain包含业务规则(插入客户端日志历史记录),我应该在Business Layer或DAL下创建此功能吗?

    另外,我想将事务范围包装在InsertClientMain函数中。如果InsertClientMain在业务层中,我可以在业务层中使用事务范围吗?我读了一篇文章,Business层不能使用任何与数据库事务或持久性相关的东西(DAL应该处理所有数据库事务)。

    谢谢

0 个答案:

没有答案