Не могли бы вы рассказать мне, как исправить запрос ниже. LINQ формировал мои даты как выписанный пример: 8 августа 2015 года. Мне нужно 8/8/2015. Каждая попытка, которую я пытаюсь, дает мне другое сообщение об ошибке. Что я делаю не так.Linq Can not Перевести ToShortDateString()
var orgData = (from d in db.tbl_FormsSubmittedValues
where d.SiteID == _siteID
& d.FormID == _formID
& ((d.tbl_FormsSubmitted.UserID == _userID && _viewOwnOnly) || !_viewOwnOnly)
& ((_search != "" && d.Value.Contains(_search)) || _search == "")
select new
{
d.FormSubmissionID,
Value = d.ValueDate.HasValue ? d.ValueDate.Value.ToShortDateString(): d.ValueLong != null ? d.ValueLong : d.Value,
d.FieldID,
d.FormID,
d.SiteID,
d.tbl_FormsSubmitted,
d.tbl_FormsSubmitted.UserID,
}).ToList();
Оригинальная линия Это дает мне выписал дату вместо мм/дд/гггг
Value = d.ValueDate != null ? d.ValueDate.ToString() : d.ValueLong != null ? d.ValueLong : d.Value,
Проблема Линия:
Value = d.ValueDate.HasValue ? d.ValueDate.Value.ToShortDateString(): d.ValueLong != null ? d.ValueLong : d.Value,
Ошибка:
Could not translate expression 'd.ValueDate.Value.ToShortDateString()' into SQL and could not treat it as a local expression.
Возможно, вам захочется выделить то, что вы на самом деле сделали, чтобы форматирование произошло за пределами sql. Я почти пропустил это, и я искал его! :) – Chris
@Chris достаточно справедливо :) теперь редактирование – psoshmo
Я бы этого не сделал, потому что даже если вы выполняете предложение where, вы выталкиваете все столбцы из db.tbl_FormsSubmittedValues. Я бы выбрал вариант, дружественный к производительности. –