2016-07-18 43 views
-1

我想從數據庫中檢索日期。我用這LINQ查詢: 這是我整個控制器從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.NotSupportedException」類型的異常出現在System.Data.Entity的。 dll但未在用戶代碼中處理
附加信息:LINQ to Entities不識別方法'System.String ToString()'的方法,並且此方法不能被 翻譯成存儲表達式。

我想取出這個日期,並傳遞它JSON

return Json(SettleDate, JsonRequestBehavior.AllowGet); 
+1

你說過檢索** a **日期,但你查詢返回一個集合(不是一個單一的日期)。沒有你在代碼中使用過'.ToString()',所以這個錯誤與你顯示的內容無關。 –

+0

@StephenMuecke好吧,也許'issueDate'變量是一個字符串,所以也許可以比較'c.ISSUE_DATE == issueDate'它嘗試在內部將ISSUE_DATE轉換爲字符串。我們肯定需要更多信息。 – Charlie

+1

@CarlosAlejo在這種情況下,它不會編譯的錯誤「無法比較DateTime與字符串」 – fubo

回答

0

儘量選擇(C => c.SETTLE_DATE.ToString()),而不是選擇(C => c.SETTLE_DATE)。