如果我有一个聚合根用户它有像
这样的属性public class User:BaseEntity
{
public User()
{
//Ef Use
}
public User(string firstName, string secondName,
string userName,Password password )
{
this.UserName = userName;
this.Password = password;
this.FirstName = firstName;
this.SecondName = secondName;
}
public string UserName { get; private set;}
public Password Password { get; private set;}
public string FirstName { get; private set;}
public string SecondName { get; private set;}
}
我可以创建像var naz=new User ("naz","password","firstName","secondname"
这样的新用户
并使用UserRepository
保存。
我该如何编辑用户fistname
属性?
我是否需要使用存储库创建公共setter和Save? 。
我很困惑,对DDD很陌生。我该怎么做呢。
答案 0 :(得分:0)
域实体带有状态,您通常需要能够更改此状态。如果您使用DDD方法,上面的示例我看起来像这样。
您的示例不是一个好的DDD示例,因为您的用户域模型基本上只是一个DTO。
答案 1 :(得分:0)
更新用户名可以通过调用如下方法来完成:
public void ChangeUsername(string newName)
{
//Check any required business rules.
this.UserName = newName;
}
您获得的一点是,您可以查看与更改用户名相关的任何业务规则。
尽管普遍存在的语言在这种方法中会更加明确。