2011-06-09 140 views
1

问候语 我有个人的个人信息,包括出生日期 我如何获取在第1天和第2天之间出生的人的信息?出生在日期范围内显示数据

日期是在SQL Server数据库压缩 我收到了创纪录的方式

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

这是存储在数据库中?如果是这样,什么类型?如果没有,更多细节? – David 2011-06-09 21:42:38

回答

1

如果您有这些对象的存储在一个列表比你可以说,

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

但男人,你应该更具体,如果这些信息的存储在数据库中,如果出生日期存储为格式DateTime或任何其他,请更具体,并向我们展示一些代码。

0

通过您问题中的标签,它看起来像您使用的是Nhibernate。如果你使用LINQ到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; 
0

我喜欢的扩展方法更加

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

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

5

代替.Add(Restrictions.Eq("Date", date))使用.Add(Restrictions.Between("Date", fromDate, toDate))