【发布时间】:2015-09-30 23:56:10
【问题描述】:
我正在尝试为我的项目添加一些架构并丰富我的模型。 我从 CQS 开始(与那个类似的实现:CQS-Sample),这是我的第一个问题。
假设我有两个像下面这样的类:
public class Network
{
public int Id { get; set; }
public User User { get; set; }
private IQueryFactory _queryFactory { get; set; }
public Network(IQueryFactory queryFactory)
{
_queryFactory = queryFactory;
}
public void AddUser(User user)
{
if(this.User == null && user != null)
{
userHasUniqueEmail(user);
this.User = user;
}
}
private void userHasUniqueEmail(User user)
{
bool isUnique = _queryFactory.ResolveQuery<INewUserUniqueQuery>().Execute(user.Email);
if (!isUnique)
{
throw new ArgumentException("E-mail is not unique");
}
}
}
public class User
{
public int Id { get; set; }
public string Email { get; set; }
}
网络对象可以有用户,但我需要先在数据库中检查给定的电子邮件不存在或做一些其他检查,这样我的命令才会成功执行。 通过添加用户,我的意思是向数据库添加全新的用户。 这样做是正确的方法吗?
【问题讨论】:
标签: c# asp.net-mvc architecture cqrs