我只用2天了解DDD,以及代码中的以下问题?
public class User
{
public Int UserId{get;set;}
public string Username{get;set;}
public List<Role> Roles{get;set;}
public User GetUserById(int userid)
{
// How to write the business logic?
// How to instance userRepository?
return userRepository.GetUserById(userid);
}
public List<Role> GetRoles(int userid)
{
// How to write ?
}
}
public interface IUserRepository
{
User GetUserById(int userid);
}
public class UserRepository : IUserRepository
{
public User GetUserById(int userid)
{
///ado.net code list from database
}
}
答案 0 :(得分:1)
这里没有明确的问题,我只能观察我能看到的内容:
为什么在域模型类(User)中有一个名为GetUserById
的方法?这不应该在这里 - 这应该在你的存储库中(它是)。这就像是通过您的域模型调用您的存储库 - 这是错误。您的存储库是您的域模型的抽象。删除此方法。
您的演示文稿应该实例化您的存储库,它们对域模型执行操作,然后返回到演示文稿。
您的域名模型不应该依赖任何内容。
如果您有任何其他具体问题,请编辑您的问题,我会尝试回答。