私は、豊富なドメイン モデルと、ドメイン エンティティがセマンティック動作の実装を提供するオブジェクトに密接に結合されていないドメイン エンティティにセマンティック機能を組み込む方法について頭を悩ませようとしています。
たとえば、User
エンティティをドメイン モデルに組み込みたいが、その実装を ID フレームワークによって駆動したい
class User
{
public string Email { get; set; }
... All of the other IdentityUser properties...
public void DisableUser()
{
...behaviour to disable a user, most likely requires UserManager
}
public void AddToRole(Role role)
{
... most likely requires RoleManager
}
}
これで、ビジネス ルールに従って動作し、永続性と実装を意識しないドメイン モデルができました。
しかし、依存関係がなく、 と に結合されていない場合、どのように正確に機能し、機能するはずですDisableUser()
か?AddToRole()
UserManager
RoleManager
- 一般的に、何が欠けていますか?
- ドメイン エンティティは、動作を提供するオブジェクトに依存する必要がありますか?
- ドメイン モデルを実装プロバイダーから切り離すにはどうすればよいですか?