【问题标题】:Retrieve Date from LINQ in variable从变量中的 LINQ 检索日期
【发布时间】:2016-07-18 08:13:57
【问题描述】:

我想从数据库中检索日期。我正在使用这个 LINQ 查询: 这是我的整个控制器

[HttpGet]
public ActionResult FillSettlementDate(string Tenor1)
{
    DateTime issueDate = Convert.ToDateTime(Session["IssueDate1"]);
    int aucid = Convert.ToInt32(Session["auctionid"]);
    string products=  Convert.ToString(Session["Product_Id"]);
    var SettleDate =  db.AUCDATA_TENORS
        .Where(c => c.TENOR_ID == Tenor1 && c.ISSUE_DATE == issueDate && c.AUCTION_ID ==aucid  && c.PRODUCT_ID ==products)
        .Select(c => c.SETTLE_DATE).ToList();
    return Json(SettleDate, JsonRequestBehavior.AllowGet);
}

它给了我不支持的异常

System.Data.Entity.dll 中出现“System.NotSupportedException”类型的异常,但未在用户代码中处理
附加信息:LINQ to Entities 无法识别方法 'System.String ToString()' 方法,并且此方法不能 翻译成商店表达式。

我想检索这个日期并以 JSON 格式传递它

return Json(SettleDate, JsonRequestBehavior.AllowGet);

【问题讨论】:

  • 您说检索 a 日期,但您查询返回一个集合(不是单个日期)。您在代码中没有使用.ToString(),因此错误与您显示的内容无关。
  • @StephenMuecke 好吧,也许 issueDate 变量是一个字符串,所以也许要比较 c.ISSUE_DATE == issueDate 它正在尝试在内部将 ISSUE_DATE 转换为字符串。我们肯定需要更多信息。
  • @CarlosAlejo 在这种情况下它不会编译并出现错误“无法将 DateTime 与字符串进行比较”
  • @StephenMuecke 先生实际上我正在转换此查询之上的发布日期 DateTime issueDate = Convert.ToDateTime(Session["IssueDate1"]); int aucid = Convert.ToInt32(Session["auctionid"]); string products= Convert.ToString(Session["Product_Id"]);
  • 使用相关代码编辑您的问题(不在 cmets 中)

标签: c# asp.net-mvc linq linq-to-sql


【解决方案1】:

尝试使用 Select(c => c.SETTLE_DATE.ToString()) 代替 Select(c => c.SETTLE_DATE)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-02
    相关资源
    最近更新 更多