Мне нужно выбрать записи из таблицы для интервала дат.Entity framework «Выбор даты времени из строки»
Но дата для выбора хранится как NVARCHAR в этой модели
20160511_155015 (yyyymmdd_hhmmss)
Я не могу использовать ToList()
, чтобы сделать его как DateTime.ParseExact(entry.StartDate, "yyyyMMdd_HHmmss", CultureInfo.InvariantCulture)
таблица хранит несколько миллионов записей. Так что мне нужно сделать что-то вроде этого:
var preQuery = context.Table
.AsNoTracking()
.Select(x => new
{
StartDate = ConvertFrom()),
Mode = x.Mode,
SessionStart = x.AStart,
SessionEnd = x.AEnd,
x.SensorNumber
})
.Where(x => x.StartDate != null
&& x.StartDate >= startDate
&& x.StartDate <= endDate)
.ToList();
Можно ли преобразовать строковое представление в DATETIME, а затем продолжить ИНЕКЕ?
Почему вы храните их в этом беспорядке вместо 'datetime'? –
Эта архитектура БД унаследована от идиотов! – Roman
@ Roman: это так, возможно, это * схема *, которая должна быть * переработана *? У вас нет необходимости внедрять новый дизайн за один раз. В качестве первого шага вы можете создавать представления (с правильными столбцами и типами), а затем преобразовывать представления в материализованные представления, а не делать своп: превращать материализованные представления в таблицы и прежние таблицы в просто виды; наконец, отбросить таблицы. –