Показать данные в диапазоне дат - PullRequest
1 голос
/ 10 июня 2011

Поздравления У меня есть личные данные человека, включая дату рождения Как я могу получить информацию о людях, рожденных между датой 1 и датой 2?

дата рождения указана в базе данных SQL Server Compact Я получаю запись таким образом

using (ISession session = NHibernateConfiguration.OpenSession())
{
    var production = session
        .CreateCriteria(typeof(Person))
        .Add(Restrictions.Eq("Date", date))
        .List<Person>();
    return production;
}

Ответы [ 4 ]

5 голосов
/ 10 июня 2011

вместо .Add(Restrictions.Eq("Date", date)) используйте .Add(Restrictions.Between("Date", fromDate, toDate))

1 голос
/ 10 июня 2011

Если у вас есть эти объекты в списке, чем вы могли бы сказать,

for(int i=0;i<list.count;i++)
{
 if(list[i].getBirthdate.Day == 1 || list[i].getBirthdate.Day == 2 )
  //DoSomething
}

Но, мужик, вам следует быть более конкретным, если эта информация хранится в базе данных, если дата рождения хранится как форматированная дата-время или что-то еще, пожалуйста, будьте более конкретны и покажите нам некоторый код.

0 голосов
/ 10 июня 2011

Мне больше нравятся методы расширений

var persons = GetPersonList();
var range = persons.Where(p => p.Dob >= startDate && p.Dob <= endDate);

Обратите внимание, что я знаю, что это в основном то же самое, что и использование синтаксиса LINQ, мне просто не нравится синтаксис linq:).

0 голосов
/ 10 июня 2011

Судя по тэгам в вашем вопросе, похоже, что вы используете Nhibernate.Если вы используете Linq-to-Nhibernate, вы можете использовать оператор linq, например:

var query = myISession.Linq<Person>();
var result = from entity in query
             where entity.Dob >= dob1 && entity.Dob <= dob2
             select entity;
return result.Count() > 0 ? result.ToList() : null;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...