Я хочу, чтобы читать записи из ЛИЦУ где поля VarCharDate является Между две даты ввода пользователя. Если я выполняю sql напрямую, он успешно возвращает все записи между двумя датами.NHibernate Linq использовать Между пункта на IQueryable
т.е.
SELECT * FROM ENTITY WHERE VarCharDate BETWEEN '2010-09-01' AND '2012-08-01'
Здесь поле VarCharDate имеет тип VARCHAR, который предопределен и не могу изменить его на DateTime. Формат даты фиксирован на «ГГГГ-ММ-ДД» для хранения значений в этом поле.
Проблема:
EDIT: Я использую FluentNhibernate для картографических организаций. Также я строю схему при запуске приложения по конфигурации.
Я использую Nhibernate Linq для извлечения записей в моем приложении C#. я пытался что-то вроде:
session.Query<ENTITY>()
.Where(e=>
Convert.ToDateTime(e.VarCharDate) >= Convert.ToDateTime(loInputDateString) &&
Convert.ToDateTime(e.VarCharDate) <= Convert.ToDateTime(hiInputDateString)
).ToList();
Выполнения выше результатов заявления в NotSupportedException ошибок во время выполнения.
Google показывает результат в отношении ExtensionMethods, и я обнаружил, что все это запутывает, так что не удалось его реализовать.
Как я мог достичь что-то вроде:
session.Query<ENTITY>(e=> e.VarCharDate.Between(loInputDateString,hiInputDateString)).ToList();
я пытался что-то упоминается в ссылке LINQ Between Operator
Но это не работает, хотя.
Привет, Раббан, обновил вопрос, также хочу упомянуть, что я использую FluentNhibernate для сопоставления объектов. – Shikha
Вы пробовали его с помощью TypeConverter или хотите остаться с расширением Between? И можете ли вы изменить свойство (а не поле) на DateTime? – Rabban