Я думаю, что понимаю вашу проблему после публикации скриншота. Некоторым функциям не разрешено запускать внутри linq, так как linq необходимо перевести их в sql.
Поскольку я не могу скопировать свой код с моими изменениями (вам необходимо выполнить форматирование даты вне инструкции linq, используя ли цикл foreach или любой другой метод). Грубая идея:
allclient = (from ....
select new AllClient()
{
...
PurchaseDT = "",
PurchaseDate = k.PurchaseDate, //the formatting will be done later
}
foreach (AllClient c in allclient)
c.PurchaseDT = String.Format("{0:y yy yyy yyyy}", c.PurchaseDate); //or whatever other formatting you want
где PurchaseDate
имеет тип DateTime и PurchaseDT
имеет тип строки.
Сначала сохраните значение, исходящее из db, в переменную datetime, а затем перейдем через список, используя цикл foreach, преобразуем переменную datetime в строку и присваиваем ее строковой переменной.
Обновлено
Единственный способ будет включать в себя вы добавив еще одну переменную в класс AllClient, если вы можете. Это будет DateTime для временного хранения даты, а другая - как строка (как показано в фрагменте кода выше), который будет обновляться с форматированной датой после оператора linq.
ИЛИ
Держите один DateTime PurchaseDT
, и вместо форматирования в LINQ или сразу же после этого, только отформатировать его, когда вы показываете его. Например, если вы показываете записи на какой-либо таблице, при отображении столбца даты сделайте форматирование на PurchaseDT
.
Какая ошибка? – squill25
показать мне ошибку, пожалуйста? –