2016-07-18 1 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); 
} 

это дает мне Не поддерживается Exception

Исключение типа «System.NotSupportedException» произошло в System.Data.Entity. dll, но не обрабатывался в коде пользователя
Дополнительная информация: LINQ to Entities не распознает метод 'System.String ToString()', и этот метод не может быть переведен в выражение хранилища.

Я хочу, чтобы получить эту дату и передать его в формате JSON

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

Вы сказали, что хотите получить ** дату **, но запрос возвращает коллекцию (а не одну дату). Нет, где в коде вы использовали '.ToString()', поэтому ошибка не связана с тем, что вы показали. –

+0

@StephenMuecke хорошо, может быть, 'issueDate' - это строка, поэтому, возможно, для сравнения' c.ISSUE_DATE == issueDate' она пытается внутренне преобразовать ISSUE_DATE в строку. Нам определенно нужна дополнительная информация. – Charlie

+1

@CarlosAlejo в этом случае он не будет компилироваться с ошибкой «не может сравнивать DateTime со строкой» – fubo

ответ

0

Попробуйте Select (с => c.SETTLE_DATE.ToString()) вместо Select (с => c.SETTLE_DATE).

 Смежные вопросы

  • Нет связанных вопросов^_^