我有一个名为的类,在这个类中有一个枚举值User
的集合。UserRole
public class User {
...
public ICollection<UserRole> UserRoles { get; private set; }
...
}
[Flags]
public enum UserRole {
Beginner = 1,
Advanced = 2,
Expert = 4,
Admin = 8
}
User
toUserRole
关系是多对多关系,并使用三个表(tblUser、tblRole 和 tblUserRole 仅具有 userId 和 roleId)实现。HBM如下:
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" default-lazy="false">
<class name="User, SampleDll" table="tblUser">
...
<bag name="UserRoles" table="tblUserRole" cascade="all-delete-orphan" fetch="join">
<key column="UserId"/>
<element column="RoleId" type="UserRole, SampleDll" />
</bag>
...
</class>
</hibernate-mapping>
现在我想创建一个具有相同语义的标准
select u.* from tblUser u
left join tblUserRole ur on ur.UserId = u.UserId
where ur.RoleId = @USER_ROLE
是否可以在没有单独的枚举映射文件的情况下实现这样的条件(使用 queryOver 或分离的条件)UserRole
?
提前感谢您的提示。
先生