Fab*_*ber 2 nhibernate restrictions queryover
我有一点问题:我会在QueryOver中插入一个条件来检查变量值.像这样的东西:
var qOver = QueryOver.Of<MyModel>(() => myMod)
.JoinAlias(() => myMod.SubMod, () => subMod, JoinType.LeftOuterJoin)
.Where(Restrictions.Or(
Restrictions.On(() => myMod.ID).IsIn(MyIDList)
, Restrictions.On(MyIDList == null))
Run Code Online (Sandbox Code Playgroud)
在SQL sintax中有类似的东西
WHERE @Variable = '' OR MyTable.MyField = @Variable
Run Code Online (Sandbox Code Playgroud)
所以,如果我的变量已填满,我将过滤我的字段.如果我的变量为空(或为空),我将选择每个记录而不过滤任何内容.
如何使用QueryOver和Restrinctions达到此结果?谢谢!
如果变量为null或未设置,则不要将其添加到查询中.
var qOver = QueryOver.Of<MyModel>(() => myMod)
.JoinAlias(() => myMod.SubMod, () => subMod, JoinType.LeftOuterJoin);
if( MyIDList != null )
qOver = qOver.Where(Restrictions.Or(Restrictions.On(() => myMod.ID).IsIn(MyIDList))
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4216 次 |
最近记录: |