假设一个经典的 3 层应用程序。在 DAL 中,您有一个 GenericRepository,其中 T 代表您的 POCO 类,它包括一些方法,如 Insert(T entity)、Delete(T entity)、Update(T entity) 等。然后,您的 BLL(业务逻辑类)包含类似 CustomerRepositor 的内容。好吧,所有权利。
现在,图像您的 aspx 页面:
var customers = BLL.CustomerRepository.GetAll();
customers.First().Name = "some name";
不好,您必须通过 CustomerRepository.Update、Insert 或 Delete 方法才能对所有 CRUD 操作执行一些验证。通过这种方式,所有业务逻辑都不会像我认为的那样工作。
我注意到没有人从未考虑过这一点,但我认为这是一个重要的问题。如果您可以绕过它们,那么拥有用于 CRUD 操作的业务方法是没有意义的。
我错过了什么吗?