2015-07-12 1 views
0

Я пытаюсь добавить некоторые архитектуры в свои проекты и обогатить свои модели. Я начал с 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; } 
} 

объект сеть может иметь пользователь, но мне нужно проверить первый в базе данных, что данный адрес электронной почты уже не существует, или делать какие-то другие поверки , поэтому мои команды будут успешно выполнены. Добавляя пользователя, я имею в виду добавление абсолютно нового пользователя в базу данных. Правильно ли это будет?

ответ

1

Вы можете сделать это так, как вы делаете это сейчас, и все в порядке.

Другой вариант - сделать это валидацией в Contoller. Затем вы должны использовать Remote attribute. И переместите свой метод IsEmailUnique(string mail) на номер Controller.

Если вы хотите знать, как вы можете это сделать с помощью электронной почты - this question поможет вам.

 Смежные вопросы

  • Нет связанных вопросов^_^