Est-il correct d'utiliser Modèle de spécification avec les propriétés de navigation?Modèle de spécification avec propriétés de navigation
J'ai le contexte de suivi:
Quand j'ajoute un étudiant, je dois valider les adresses.
Student Classe:
public class Student {
public string Name { get; set; }
public DateTime Birth { get; set; }
//...
public virtual ICollection<StudentAddress> StudentAdresses { get; set; }
}
StudentAddress Classe:
public class StudentAdress{
public int Id { get; set;}
public string Street { get; set; }
//...
}
Sur mon service étudiant (DDD):
Service:
public void AddStudent(Student student)
{
// code
var studentValidation = new StudentValidation().Validate(student); // Student Validation has a set of specifications that will populate a validation result object and that I'll retrieve it by Domain Controller Notification (MVC)
// code
}
PS: validation étudiant dispose d'un ensemble de spécifications qui peupleront un objet résultat de validation et que je vais le récupérer par la notification du contrôleur de domaine (MVC)
Retour à la question ...
Où puis-je mettre mes spécifications de classe d'adresses d'étudiant?
J'ai pensé à la possibilité de les placer dans la classe StudentValidation et d'utiliser la propriété Navigation pour pouvoir valider chaque adresse. Je ne sais pas si c'est correct. Ce serait un type de validation transversale.
Pourquoi StudentAddress est-il une entité? Ce devrait être un objet de valeur. –
Je pense que ma réponse à cette question peut vous guider dans la bonne direction en ce qui concerne les validations de l'interface utilisateur vs domaines: http://stackoverflow.com/questions/28395176/should-i-abstract-the-validation-framework-from-domain- couche/28397201 # 28397201 – plalx
Constantin, StudentAddress est une table sur ma base de données. Il a une identité et je pense que les objets de valeur sont un ensemble de propriétés d'une entité spécifique. –