1

我有一个数据库,其中包含“生效日期”和“终止日期”列

这种情况是在添加记录之前,我需要确保给定的一组有效和终止日期没有重叠记录。我怎么能实现这个?我正在使用 LINQ 使用 MVC 构建应用程序。

谢谢!

4

2 回答 2

2

您应该检查任何记录 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));
于 2012-04-19T18:38:07.167 回答
1
var result = (from t in dbContext.table
             where t.EffectiveDate.Value <= yourDate && 
             t.TerminationDate.Value >= youDate
             select t).Count();
if(result > 0)
{
//Overlap
}
于 2012-04-19T18:32:18.913 回答