我试图了解丰富的域模型以及如何将语义功能构建到域实体中,其中域实体没有与提供语义行为实现的对象紧密耦合
例如,我想在User
我的域模型中构建一个实体,但我希望它的实现由身份框架驱动
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
}
}
所以现在我有一个根据业务规则运行的域模型,并且对持久性和实现一无所知。
但是,当它们没有依赖关系并且不以任何方式与 and 耦合时,它们究竟DisableUser()
应该AddToRole()
如何UserManager
工作RoleManager
?
- 一般来说,我错过了什么?
- 域实体是否应该依赖于提供行为的对象?
- 我应该如何将我的域模型与实现提供者分离?