Я долго боролся с этой проблемой и не могу заставить ее работать должным образом.Что я хочу сделать, это получить записи с датой ранее указанной записи.Чтобы вы поняли, я покажу вам этот фрагмент кода:
var post = _session.Linq<PostModel>()
.Where(o => o.PostId == id)
.FirstOrDefault();
return _session.Linq<PostModel>()
.Where(o => DateTime.Compare(post.PostDate, o.PostDate) >= 0)
.ToList();
Это не работает!Это выдаст мне исключение, говорящее:
The method Compareto is not implemented.
Я пытался реализовать "IComparer" для моей PostModel, но здесь, похоже, это не проблема.Хотя это будет работать, если я сначала преобразую все записи в список, а затем сравню их, например:
return _session.Linq<PostModel>().ToList()
.Where(o => DateTime.Compare(post.PostDate, o.PostDate) >= 0)
.ToList()
Но, насколько я понимаю, преобразование всех записей в список перед любыми случаями приведет к NHibernate.выбрав все записи.Это может не быть проблемой, если мы говорим о небольшом количестве записей, но в долгосрочной перспективе это потратит некоторое время.
У кого-нибудь есть идеи?
TIA