Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
NHibernate查询(hql与标准)_Nhibernate_Hql - Fatal编程技术网

NHibernate查询(hql与标准)

NHibernate查询(hql与标准),nhibernate,hql,Nhibernate,Hql,我有一个hql查询字符串 from MyTable table where table.StartTime + table.Duration >= : startTime and table.MyId = : id 如果没有NHibernate中的HQL(使用标准),我如何编写这篇文章呢?可能对DateTime+TimeSpan问题感兴趣 这将在您的情况下起作用: 询问者: int id = 1; DateTime startTime = DateTime.Now.AddDays(

我有一个hql查询字符串

from  MyTable table
where table.StartTime + table.Duration >= : startTime
and   table.MyId = : id
如果没有NHibernate中的HQL(使用标准),我如何编写这篇文章呢?

可能对DateTime+TimeSpan问题感兴趣

这将在您的情况下起作用:

询问者:

int id = 1;
DateTime startTime = DateTime.Now.AddDays(5.0);

var vacations = session.QueryOver<Vacation>()
    .Where(v => v.Employee.Id == id)
    .And(v => v.StartDate > startTime 
     || (v.StartDate == startTime.Date && v.Duration >= startTime.TimeOfDay))
    .List();
两者都将输出完全相同的SQL。应该提到的是,您不能像上面的链接中所述那样做:

var vacations = session.QueryOver<Vacation>()
    .Where(v => v.Employee.Id == id)
    .And(v => v.StartDate.Add(v.Duration) >= startTime) // <-- this will NOT work
    .List();
var vacations=session.QueryOver()
.其中(v=>v.Employee.Id==Id)

.和(v=>v.StartDate.Add(v.Duration)>=startTime)//Thansk作为您的简短回答。。。name@Florian林
var vacations = session.QueryOver<Vacation>()
    .Where(v => v.Employee.Id == id)
    .And(v => v.StartDate.Add(v.Duration) >= startTime) // <-- this will NOT work
    .List();