【发布时间】:2009-07-11 23:25:55
【问题描述】:
[标志]
public enum ShowProductOn : short
{
HomePage = 1,
SalesPage = 2,
NewsLetter = 4
};
此枚举的有效值:
1 - 主页
2 - 销售页面
3 - 主页、销售页面
4 - 时事通讯
5 - 主页、新闻通讯
6 - SalesPage、NewsLetter
7 - HomePage、SalesPage、NewsLetter
我想写一个标准来返回主页上的所有产品。 在 c# 中检查它非常简单:
如果 ((MY_PARAM & ShowProductOn.HomePage) == ShowProductOn.HomePage)
Console.WriteLine("Yes");
在Sql中也很简单:
声明@BitMask int = 3
IF ((@BitMask & 1) = 1)
开始
Print('Yes')
结束
这是我写的返回主页上所有产品的 NH 标准(应该匹配 1|3|5|7):
ICriteria 标准 = NHibernateSession.CreateCriteria() .Add(Restrictions.Eq("ShowProductOn", ShowProductOn.HomePage));
此条件仅返回“ShowProductOn”=1 的项目,但忽略“ShowProductOn”=3|5|7 的其他匹配项目。
有谁知道 ICriteria /HQL 语法来编写一个标准,该标准将返回 "ShowProductOn"=1|3|5|7 的所有项目?
谢伊。
【问题讨论】:
标签: nhibernate