【发布时间】:2022-08-13 23:08:34
【问题描述】:
我是新的广告领域驱动设计,对实体对象有疑问。 对象不应仅移动如下数据。我正在使用 c# 编程语言。
public class Job
{
public Guid Id { get; set; }
public string Title { get; set; }
public DateTime StartDate { get; set; }
public DateTime EndDate { get; set; }
}
它应该有一些逻辑,例如:
public class Job
{
public Guid Id { get; set; }
public string Title { get; set; }
public DateTime StartDate { get; set; }
public DateTime EndDate { get; set; }
public bool IsActive() { .... }
public bool IsAppliable() { .... }
}
但是我在哪里可以验证数据属性验证?它在这样的实体类中吗? (也许使用 getter setter 属性进行验证,而不是使用 Validate() 方法)
public class Job
{
public Guid Id { get; set; }
public string Title { get; set; }
public DateTime StartDate { get; set; }
public DateTime EndDate { get; set; }
public bool IsActive() { .... }
public bool IsAppliable() { .... }
public List<string> Validate(){
List<string> validationErrors = new List<string> ();
if(Title.Length < 3)
validationErrors.Add(\"Title should be minimum 3 characters\")
if(Title.Length > 300)
validationErrors.Add(\"Title should be max 300 characters\")
....
}
}
还是应该使用 FluentValidation 等 3rd 方工具创建一个新的通用类来验证实体?哪个是领域驱动设计的正确方法?
-
请参阅Validation and DDD 验证和 DDD 可能是一个棘手的组合。如何以不会导致领域知识泄露的方式进行验证?
标签: c# validation domain-driven-design entity