我正在使用 nhibernate 3 和流利的 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
有没有必须去的地方
session.Query<TableA>().Where x.Permission == Permission.View || x.Permission == Permission.All);
编辑
public class TableAMap : ClassMap<TableA>
{
public TableAMap()
{
Id(x => x.Id).GeneratedBy.GuidComb();
Map(x => x.Permission).Not.Nullable().CustomType<PermissionTypes>();
}
}