【发布时间】: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