C# 如何使用LINQ检查值重叠

C# 如何使用LINQ检查值重叠,c#,linq,entity-framework,C#,Linq,Entity Framework,C#实体框架中如何避免范围重叠 select * from globalsettings where minvalue between 3 and 6 OR maxvalue between 3 and 6 int checkRange=(来自db.globalSetting中的globalSetting 其中((globalSetting.MinValue>=MinValue &&globalSetting.MinValue=MinValue &&globalSetting.MaxValu

C#实体框架中如何避免范围重叠

select * from globalsettings 
where minvalue between 3 and 6 OR maxvalue between 3 and 6
int checkRange=(来自db.globalSetting中的globalSetting
其中((globalSetting.MinValue>=MinValue
&&globalSetting.MinValue=MinValue

&&globalSetting.MaxValue公认的答案当然很有效,但出于好奇,我想指出另一种方法,因为您提到您正在使用实体框架。 您可以使用:

int checkRange = (from globalSetting in db.GlobalSetting
                  where ((globalSetting.MinValue >= minValue 
                          && globalSetting.MinValue <= maxValue) 
                          || (globalSetting.MaxValue >= minValue 
                                && globalSetting.MaxValue <= maxValue))
                  select globalSetting)
                  .Count();
var vals = db.GlobalSetting.Where("(minvalue between 3 and 6) or (maxvalue between 3 and 6)");
//if you just want the count of these:
int checkRange = vals.Count();