Как отфильтровать записи в столбце строковой даты, используя структуру объекта

c# entity-framework linq

647 просмотра

2 ответа

У меня есть таблица базы данных сервера SQL, которая имеет столбец DueDate. Тип данных этого столбца nvarchar (50), поэтому он сохраняет значения дат в виде строки в этом столбце.

Я использую Entity Framework для получения записей из этой таблицы. Мое требование состоит в том, чтобы получать только те записи, для которых истек срок действия DueDate, т.е. записи, где значение DueDate <= TodaysDate. Но поскольку Linq to Entities не поддерживает методы Covert.ToString () или Covert.ToDateTime (), поэтому я не могу сравнить значения DueDate с сегодняшним значением даты.

Пожалуйста, помогите мне в решении этой проблемы.

Заранее спасибо.

Автор: Mohit Thakur Источник Размещён: 08.11.2019 11:11

Ответы (2)


0 плюса

Попробуйте проанализировать вашу строку по типу даты, как показано ниже: я сохраняю текущую дату в строке (предположим, что вы читаете дату как строку из базы данных), а затем анализирую ее в объекте datetime.

string StringDate = DateTime.Now.ToString();
DateTime Date = DateTime.Parse(StringDate);
Автор: Ateeq Размещён: 20.08.2016 10:46

0 плюса

Попробуй это.

DateTime startDate = DateTime.Now;
string dateToCompare = startDate.ToString("dd/MM/yyyy");
var result = from Table in context.Table where Table.DueDate.CompareTo(dateToCompare) <= 0 
        select Table.ID;
List<int> resultBrands = result.ToList(); // it should be select just Table but I will show the results to be clear.

Вот результаты, (я использую тест БД)

введите описание изображения здесь

Надежда помогает,

Автор: Berkay Размещён: 20.08.2016 11:25
Вопросы из категории :
32x32