【问题标题】:Date falls between two dates and matches one date from table in Linq日期介于两个日期之间并与 Linq 表中的一个日期匹配
【发布时间】: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 =&gt; x.ApplicationBeginDate &lt; policyApplicationDate &amp;&amp; x.ApplicationEndDate &gt; policyApplicationDate &amp;&amp; x.EffectiveDate == policyEffectiveDate) 之类的东西?
  • 好的...那么applicationBeginDates 的类型是什么?看起来它是对象的collection。集合晚于日期是什么意思?听起来您真的应该调整您的 FindAll 查询以在数据库本身中执行测试。
  • stephen.vakil 效果很好!太感谢了。 @JonSkeet 这在世界上很有意义。你在 stackoverflow 上传授知识真是太棒了。再次感谢您抽出宝贵时间。

标签: c# linq


【解决方案1】:

感谢@stephen.vakil 的评论和@JonSkeet 的建议,我能够使用它来获得我需要的东西。谢谢您的帮助!。

  var duh = _app2Lead.DataAccess.App2BonusPromos.FindByExp(
                x =>
                    x.ApplicationBeginDate < policyApplicationDate && x.ApplicationEndDate > policyApplicationDate &&
                    x.EffectiveDate == policyEffectiveDate).Any();

            if (duh)
            {
                return true;
            }
            return false;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-23
    • 2020-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多