Мы используем 3-х слойную архитектуру, которая содержит
SqlHelper -> DAL (уровень доступа к данным) -> BAL -> UI
Любой класс в DAL может вызывать другой DAL так же, как любой BAL может вызывать другой собственный BAL или DAL.
например.
class Customer_DAL { display_CusDal(); }
class Customer_BAL { display_CusBal(); }
class Product_DAL { display_ProDal(); }
class Product_BAL { display_ProBal(); }
display_CusDal()
{
//call display_ProDal()
//Do some work
}
display_CusDal
функция должна выполняться как транзакция, которая означает, что любая вставка, выполненная в этой функции, должна быть связана с объектом транзакции.
Поскольку display_CusDal может вызывать display_ProDal, который может вставлять или не вставлять данные в таблицу в другой транзакции, поэтому мне нужно обрабатывать их в транзакциях.
Какой подход я должен использовать.