私はnhibernate 3と流暢なnhibernateを使用しています
私はこの列挙型を持っています
[Flags]
public enum Permission
{
View = 1,
Add = 2,
Edit = 4,
Delete = 8,
All = View | Add | Edit | Delete
}
ここで、「view」または「all」を持つすべてのユーザーを検索したいとします。
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>();
}
}