【发布时间】:2016-12-30 22:48:01
【问题描述】:
我正在使用 Dapper 构建自定义 ORM。我有以下表格:
- 用户
- 角色
- 权限
- 角色权限
我的存储过程有 2 个选择:1 个用于基本用户信息,1 个用于用户角色信息。基本用户信息被反序列化为用户对象。 RolePermission 信息被反序列化为自定义 RolePermission 对象,然后以编程方式关联到 User 对象。在自定义 ORM 中实现对象图的复杂程度如何?例如,EF 采用了一种简单易用的 OO 方法来获取这样的角色名称:User.UserRoles.Role.Name。但是,这是通过使用复杂而复杂的 f/w 来实现的,该 f/w 根据 db fk 关联自动映射实体连接。它还带来了性能开销。我的想法是按如下方式创建我的实体类:
- MyCompany.Entities.Entity.User.User
- MyCompany.Entities.Entity.User.RolePermission
因此,我的 RolePermission 对象将完全针对用户实体量身定制,没有外部依赖项。这将使 RolePermission 对象在 User 对象的上下文中尽可能轻量级。它不需要任何额外的属性来支持其他实体/域/用法。这似乎是一个优雅(简单、有效、高效)的解决方案。您对这种在自定义 ORM 中创建复杂对象的方法有何看法?
【问题讨论】:
标签: oop orm dapper data-access-layer