ASP.NET日期范围约束/验证



如果我有一个跟踪员工休假请求的模型,我该如何确保员工不会在同一日期范围内休假?这将通过验证或在SQL Server中创建约束来处理吗?我首先在这个项目中使用了数据库。

public partial class HolidayRequestForm
{
public int RequestID { get; set; }
public int EmployeeID { get; set; }
[DisplayFormat(DataFormatString = "{0:dd/MM/yy}", ApplyFormatInEditMode = true)]
public System.DateTime StartDate { get; set; }
[DisplayFormat(DataFormatString = "{0:dd/MM/yy}", ApplyFormatInEditMode = true)]
public System.DateTime FinishDate { get; set; }
[Range(0.0001, int.MaxValue, ErrorMessage = "Hours Requested must be greater than zero. ")]
public decimal HoursTaken { get; set; }
public string Comments { get; set; }
public int YearCreated { get; set; }
public int MonthCreated { get; set; }
public int DayCreated { get; set; }
public Nullable<int> YearOfHoliday { get; set; }

[UIHint("Boolean.cshtml")]
public Nullable<bool> Approved { get; set; }
public string SubmittedBy { get; set; }
public string ApprovedBy { get; set; }
public virtual Employee Employee { get; set; }
}

理想情况下,我希望两名员工可以申请相同的日期范围,但一名员工不能在同一日期范围内申请两个假期。我可以使用自定义验证属性吗??

给定的场景是一个业务逻辑,因此最好在代码本身中实现,而不是在数据库约束或触发器中实现。

您可以为其创建一个自定义validator,并在业务层中进行验证。这种方法将易于维护/升级。

使用常规方法进行验证,或者通过内置ValidationAttribute和重写IsValid方法来创建自定义ValidationAttribute。

相关内容

  • 没有找到相关文章

最新更新