【问题标题】:LINQ greater than date query (asp.net)LINQ 大于日期查询 (asp.net)
【发布时间】:2012-02-06 00:11:42
【问题描述】:

目标:

  1. “开始日期”的订单记录
  2. 选择第一条记录
  3. 获取返回记录的id

当我尝试按“开始日期”排序所有事件选择返回的第一条记录 ...

代码示例:

        var aa = (from a in db.Events
              where a.start_date >= System.DateTime.Now.Date
              orderby a.start_date ascending
              select a).FirstOrDefault();

        Response.Write(aa.id.ToString());

...我抛出“对象引用未设置为对象的实例。”错误。

【问题讨论】:

  • start_date 字段是否可以为空?您究竟在哪一行得到了异常?
  • 这可能意味着没有任何结果。

标签: asp.net linq


【解决方案1】:

FirstOrDefault() 如果您的 IQuerable 返回一个空集合,则返回 null - 这就是您得到该异常的原因。似乎没有事件的开始日期大于 DateTime.Now.Date

【讨论】:

  • 先生,您是对的。我已经研究了 3 个多小时,并且已经编程了足够长的时间,以至于这令人尴尬。我确认我要返回的第一条记录的日期是 2/13/2002。我已将其更正为 2012 年。但是现在我返回另一个错误。我会解决这个问题,如果我不能得到它,我会发布一个新问题。谢谢大家。
【解决方案2】:

db==null 吗?

如果没有结果,FirstOrDefault() 也会返回 null!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-24
    • 1970-01-01
    • 1970-01-01
    • 2012-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多