显示日期范围之间的数据

时间:2011-06-09 21:40:45

标签: c# hibernate nhibernate

问候 我有个人的个人资料,包括出生日期 如何获取在日期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 个答案:

答案 0 :(得分:5)

而不是.Add(Restrictions.Eq("Date", date))使用.Add(Restrictions.Between("Date", fromDate, toDate))

答案 1 :(得分:1)

如果您在列表中存储的这些对象超出了您的说法,

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

但是男人,你应该更具体,如果这些信息存储在DataBase中,如果出生日期存储为Formated DateTime或其他什么,请更具体并向我们展示一些代码。

答案 2 :(得分:0)

根据你问题中的标签,看起来你正在使用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;

答案 3 :(得分:0)

我更喜欢扩展方法

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

请注意,我知道这与使用LINQ语法基本相同,我只是不喜欢linq语法:)。