【发布时间】:2016-08-26 01:25:54
【问题描述】:
我需要检查申请日期是否介于政策 applicationBeginDate 和政策 applicationEndDate 的范围之间 我有一个存储这些日期的表以及需要匹配的生效日期。我的方法需要返回一个布尔值 true 或 false,我迷路了。
我收到的错误是 > 运算符不能应用于 DateTime 和 Iqueryable 类型的操作数。
var applicationBeginDates = _app2Lead.DataAccess.App2BonusPromos.FindAll(x => x.ApplicationBeginDate);
var effectiveDates = _app2Lead.DataAccess.App2BonusPromos.FindAll(x => x.EffectiveDate);
var applicationEndDate = _app2Lead.DataAccess.App2BonusPromos.FindAll(x => x.ApplicationEndDate);
if (policyApplicationDate > applicationBeginDates && policyApplicationDate < applicationEndDate && policyEffectiveDate == effectiveDates)
{
return true;
}
return false;
【问题讨论】:
-
那么您收到的错误信息是什么?我们目前只有一半的问题。 (并且请将代码发布为 text,而不是屏幕截图。)
-
@JonSkeet 首先,哇!凉爽的!。其次感谢您查看我的问题。
-
可能是
return _app2Lead.DataAccess.App2BonusPromos.Any(x => x.ApplicationBeginDate < policyApplicationDate && x.ApplicationEndDate > policyApplicationDate && x.EffectiveDate == policyEffectiveDate)之类的东西? -
好的...那么
applicationBeginDates的类型是什么?看起来它是对象的collection。集合晚于日期是什么意思?听起来您真的应该调整您的FindAll查询以在数据库本身中执行测试。 -
stephen.vakil 效果很好!太感谢了。 @JonSkeet 这在世界上很有意义。你在 stackoverflow 上传授知识真是太棒了。再次感谢您抽出宝贵时间。