Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/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 查询的Or约束_Nhibernate - Fatal编程技术网

Nhibernate 查询的Or约束

Nhibernate 查询的Or约束,nhibernate,Nhibernate,我想按名称获取所有分区状态,其中它完全符合分区名称,或者在包含时以它开头 这就是我的疑问 return session.QueryOver<PartitionState>() .Where(p => p.Name == partitionName) .WhereRestrictionOn(p => p.Name).IsLike(partitionName + ".", MatchMode.Start) .OrderBy(p

我想按名称获取所有分区状态,其中它完全符合
分区名称
,或者在包含
时以它开头

这就是我的疑问

return session.QueryOver<PartitionState>()
        .Where(p => p.Name == partitionName)
        .WhereRestrictionOn(p => p.Name).IsLike(partitionName + ".", MatchMode.Start)
        .OrderBy(p => p.StartDate).Desc
        .Take(1)
        .SingleOrDefault<PartitionState>();

似乎没有内置的方法,但可以将限制传递给where方法

return session.QueryOver<PartitionState>()
        .Where(Restrictions.Or(
              Restrictions.Where<PartitionState>(p => p.Name == partitionName),
              Restrictions.On<PartitionState>(p => p.Name).IsLike(partitionName + ".", MatchMode.Start)))
        .OrderBy(p => p.StartDate)
        .Desc.Take(1)
        .SingleOrDefault<PartitionState>();
return session.QueryOver()
.何处(限制)或(
限制。其中(p=>p.Name==partitionName),
限制.On(p=>p.Name).IsLike(partitionName+”,MatchMode.Start)))
.OrderBy(p=>p.StartDate)
.Desc.Take(1)
.SingleOrDefault();
return session.QueryOver<PartitionState>()
        .Where(Restrictions.Or(
              Restrictions.Where<PartitionState>(p => p.Name == partitionName),
              Restrictions.On<PartitionState>(p => p.Name).IsLike(partitionName + ".", MatchMode.Start)))
        .OrderBy(p => p.StartDate)
        .Desc.Take(1)
        .SingleOrDefault<PartitionState>();