powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / linq to entities вывести только дату
16 сообщений из 16, страница 1 из 1
linq to entities вывести только дату
    #38277342
serj91
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня есть таблица, допустим, PERSONS. В этой таблице есть поле типа DATE. когда я пытаюсь в грид запихнуть это поле, оно отображается как 01.01.2013 0:00:00 - хорошо было бы обрезать эти некрасивенькие нули)

BASE.PEOPLES context = new BASE.PEOPLES();
var result = from xPersons in context.PERSONS
select new{
Имя = xPersons.name,
date = xPersons.date
};
GridView1.DataSource = result;
GridView1.DataBind();
Из несколько часового исследования интернета, я понял, что сделать что-то типа xPersons.date.toDate или Convert.ToDate(xPersonsDate) не получится, так как linq to entities не поддерживает эти функции.

После, я узнал еще одну прикольную штуку, которая называется EntityFunctions, по счастливой случайности в которой оказался метод TruncateTime(DateTime), который должен бы (судя по названию) отрезать время, и оставлять дату, но к превеликому моему разочарованию этого чуда не произошло(возможно дело в моих кривых руках)
date = EntityFunctions.TruncateTime(xPersons.date) не вызвала ошибки, но и жалкие нолики тоже остались.

Теперь у меня осталась последняя надежда - Ваша помощь)))
...
Рейтинг: 0 / 0
linq to entities вывести только дату
    #38277346
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
linq to entities вывести только дату
    #38277357
serj91
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Паганель, да вот фишка в том, что бы все колонки, ну кроме команд, брать из бд, и физически тегов Column на странице .aspx нет.
...
Рейтинг: 0 / 0
linq to entities вывести только дату
    #38277373
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
serj91, пребразуй дату в строку с нужным форматом
...
Рейтинг: 0 / 0
linq to entities вывести только дату
    #38277407
serj91
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bazile, linq to entities не распознает метода .ToString(), может есть другой способ преобразовать в строку внутри запроса?
...
Рейтинг: 0 / 0
linq to entities вывести только дату
    #38277432
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а этот Ваш linq to entities умеет брать данные не из таблицы, а из вьюхи?
если да, то просто создайте вьюху, где сконвертируйте дату/время в строку на языке Вашей СУБД
...
Рейтинг: 0 / 0
linq to entities вывести только дату
    #38277443
serj91
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Паганель,да, такое возможно сделать, но не очень хотелось бы, тогда выплывет множество головняков, связанных с изменениями в БД и файла сущностей. это я оставил на последний случай, если решения проще все же не найду
...
Рейтинг: 0 / 0
linq to entities вывести только дату
    #38277449
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
serj91решения прощепрописать Columns
...
Рейтинг: 0 / 0
linq to entities вывести только дату
    #38277668
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
serj91linq to entities не распознает метода .ToString(), может есть другой способ преобразовать в строку внутри запроса?
Точно :(. Я только один способ смог придумать - это обернуть linq2sql запрос в другой linq запрос предварительно вызвав ToList(). Но это громоздко выходит.

Попробуй менять формат даты в событии ItemDataBound для колонок с датой.
...
Рейтинг: 0 / 0
linq to entities вывести только дату
    #38277839
cooldeveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не понимаю, как связана бд и способ отображения на клиенте? Выбирай из бд, а потом форматируй как душе угодно. Не нужно мешать мухи с котлетами
...
Рейтинг: 0 / 0
linq to entities вывести только дату
    #38278122
cooldeveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Форматирование даты средствами SQL в Entity Framework

Но это, конечно, издевательство над планом выполнения запросов.
...
Рейтинг: 0 / 0
linq to entities вывести только дату
    #38278168
carrotik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
.. сейчас крамольную мысль скажу, конечно ... но если ТС хочет всё конфигурировать из БД, то пусть в БД и создаст отдельную колонку с формулой, которая будет обрезать нули из поля datetime, а код уже пусть читает эту отформатированную колонку ...
...
Рейтинг: 0 / 0
linq to entities вывести только дату
    #38278612
serj91
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
carrotik, понимаете, у меня в БД тип и так DATE, и хранятся там только даты, но вот при выводе информации отображается еще и время. Я думаю это у грида по-дефолту.
...
Рейтинг: 0 / 0
linq to entities вывести только дату
    #38278617
serj91
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
cooldeveloper, да, хоть , конечно, и кривовато написано, но работает)) так как эта штука нужна для диплома, и код смотреть никто не будет(приравниваем П к 5 и тогда вычисления сходятся) - то можно юзать. Единственное внесу немного изменений в код, что бы был на 100% рабочий - вот такую штуку сегодня нашел:
var warrants = from w in warEntities.Warrants
where (SqlFunctions.StringConvert((decimal)SqlFunctions.DatePart("m", w.DOB),2) + "/" +
SqlFunctions.DateName("d", w.DOB) + "/" +
SqlFunctions.DateName("yyyy", w.DOB)).Contains(DOBSearchTextBox.Text)
select w;
...
Рейтинг: 0 / 0
linq to entities вывести только дату
    #38279626
Pavluha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
serj91,

Набор большой возвращается?
Можно так сделать и ToString() работает.

Код: c#
1.
2.
3.
4.
5.
6.
7.
                        var list = (from a in _dataContext.VClient.AsEnumerable()
                        select new SelectListItem
                        {
                            Selected = a.ID == selected,
                            Text = a.Name,
                            Value = a.ID.ToString(),
                        }).OrderBy(o => o.Text);
...
Рейтинг: 0 / 0
linq to entities вывести только дату
    #38279658
cooldeveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pavluha, это уже было предложено тут 14362325 и тут 14362861 . Это самый правильный способ: форматировать на клиенте, а не средствами БД.
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / linq to entities вывести только дату
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]