私はDapperを使ってカスタムORMを構築しています。私は、次の表を持っている:これはカスタムormでこの関連付けシナリオを実装するためのエレガントな方法ですか?
- ユーザー
- 役割
- 許可
- をRolePermissionに
私SPROCが2つの選択があります。基本的なユーザー情報、ユーザー・ロール情報のための1のための1を。基本的なユーザー情報は、デシリアライズされてユーザーオブジェクトになります。 RolePermissionの情報は、デシリアライズされてカスタムのRolePermissionオブジェクトになり、次にUserオブジェクトにプログラムで関連付けられます。カスタムORMでオブジェクトグラフの実装をどの程度複雑にしますか?たとえば、EFは、User.UserRoles.Role.Nameのようなロール名を取得するために、すばらしく簡単なオブジェクト指向のアプローチを採用しています。しかし、これは、db fkの関連付けに基づいてエンティティ結合を自動的にマッピングする複雑で洗練されたf/wの使用によって実現されます。また、パフォーマンスのオーバーヘッドもあります。私の考えは次のように私のエンティティクラスを作成することです:
したがって- MyCompany.Entities.Entity.User.User
- MyCompany.Entities.Entity.User.RolePermission
、私RolePermissionにオブジェクトう外部依存関係のないUserエンティティに完全に合わせる必要があります。これにより、RolePermissionオブジェクトは、Userオブジェクトのコンテキストでできるだけ軽量に保たれます。他のエンティティ/ドメイン/用途をサポートするための追加のプロパティは必要ありません。これは、エレガントな(簡単で効果的で効率的な)ソリューションのようです。カスタムORMで複雑なオブジェクトを作成するこのタイプのアプローチに関するあなたの考えは何ですか?