我有一个数据库,其中包含“生效日期”和“终止日期”列
这种情况是在添加记录之前,我需要确保给定的一组有效和终止日期没有重叠记录。我怎么能实现这个?我正在使用 LINQ 使用 MVC 构建应用程序。
谢谢!
我有一个数据库,其中包含“生效日期”和“终止日期”列
这种情况是在添加记录之前,我需要确保给定的一组有效和终止日期没有重叠记录。我怎么能实现这个?我正在使用 LINQ 使用 MVC 构建应用程序。
谢谢!
您应该检查任何记录 startDate 和 TerminationDate 是否在新记录的开始和终止日期中,您可以使用 linq 执行此操作:
bool overlap = db.Records.Any(x=>(x.TerminationDate >= givenRecord.StartDate
&& x.StartDate <= givenRecord.TerminationDate) ||
(x.TerminationDate <= givenRecord.TerminationDate
&& x.StartDate >= givenRecord.StartDate));
var result = (from t in dbContext.table
where t.EffectiveDate.Value <= yourDate &&
t.TerminationDate.Value >= youDate
select t).Count();
if(result > 0)
{
//Overlap
}