在项目中经常会遇见,添加的数据不能和之前的数据存在日期交集的情况
比如已经有 3号-7号 的日期数据
排除4种情况即可
1:1-4号
2:4-5号
3:6-8号
4:1-10号
//添加的时候 如果已经有包含此区间的就不添加了
var a = DbContext.TourPackageUSDatePricingList.Where(t => t.DateFrom >= mod.DateFrom && t.DateFrom <= mod.DateTo&&t.PackageId==mod.PackageId).Count();
var b = DbContext.TourPackageUSDatePricingList.Where(t => t.DateTo >= mod.DateFrom && t.DateTo <= mod.DateTo&&t.PackageId == mod.PackageId).Count();
var c = DbContext.TourPackageUSDatePricingList.Where(t => t.DateFrom <= mod.DateFrom && t.DateTo >= mod.DateTo&&t.PackageId == mod.PackageId).Count();
var d = DbContext.TourPackageUSDatePricingList.Where(t => t.DateFrom >= mod.DateFrom && t.DateTo <= mod.DateTo&&t.PackageId == mod.PackageId).Count();
if (d>0||c>0||b>0||a>0)
{
return false;
}
else
{
DbContext.TourPackageUSDatePricingList.Add(mod);
}
这样更好理解,其实效率来讲用any的话更好
var a = DbContext.TourPackageUSDatePricingList.Any(t => t.DateFrom >= mod.DateFrom && t.DateFrom <= mod.DateTo&&t.PackageId==mod.PackageId);