我使用NHibernate 3和功能NHibernate枚举标志与NHibernate /流利
我有这个枚举
[Flags]
public enum Permission
{
View = 1,
Add = 2,
Edit = 4,
Delete = 8,
All = View | Add | Edit | Delete
}
现在说我要找到具有“查看”或“全部”的所有用户。
我怎么能用nhibernate(linq)来做到这一点?
session.Query<TableA>().Where x.Permission == Permission.View); // does not bring back all
session.Query<TableA>().Where x.Permission.HasFlag(Permission.View); // crashes
有没有去用不必去做到这一点
编辑
public class TableAMap : ClassMap<TableA>
{
public TableAMap()
{
Id(x => x.Id).GeneratedBy.GuidComb();
Map(x => x.Permission).Not.Nullable().CustomType<PermissionTypes>();
}
}
您能否显示您的映射?你的第二个例子应该工作,我们一直这样做。 –
好的,看看我的映射的OP。 – chobo2
你的枚举如何保存在数据库中?作为数字还是字符串? – cremor