我正在做的项目是使用 n 层架构。我们的层如下:
- 数据访问
- 商业逻辑
- 商业实体
- 介绍
Business Logic 向下调用到数据访问层,Presentation 层向下调用到 Business Logic 层,业务实体都被它们引用。
我们的业务实体与我们的数据模型 1-1 基本匹配。对于每张桌子,我们都有一个班级。最初设计框架时,没有考虑管理主从关系或子父关系。所以所有的业务逻辑、数据访问和业务实体,都只引用了数据库中的一个表。一旦我们开始开发应用程序,很快就会发现在我们的对象模型中没有这些关系会严重伤害我们。
您的所有层(包括数据库)都是从内部元数据数据库生成的,我们用它来驱动我们自己开发的代码生成器。
问题是在我们的实体中加载或延迟加载关系的最佳方式是什么。例如,假设我们有一个与地址表具有主子关系的人员类。这在业务实体中显示为 Person 对象上 Addresses 的集合属性。如果我们有一对一的关系,那么这将显示为单个实体属性。填充和保存关系对象的最佳方法是什么?我们的业务实体不了解业务逻辑层,因此在调用属性 get 时无法在内部完成。
我敢肯定有某种标准模式可以做到这一点。有什么建议么?
此外,需要注意的一点是 DataAcess 层使用反射来构建我们的实体。存储过程基于一张表返回一个结果选择,并使用反射通过将属性名称与列名称匹配来填充我们的业务对象。所以做连接会很困难。