Tag: nhibernate queryover

NHibernate使用QueryOver与WHERE IN

我会创build一个像这样的QueryOver SELECT * FROM Table WHERE Field IN (1,2,3,4,5) 我已经尝试使用Contains方法,但我遇到了exception “System.Exception:无法识别的方法调用:System.String:Boolean Contains(System.String)” 在这里我的代码 var qOver = _HibSession.QueryOver<MyModel>(() => baseModel) .JoinAlias(() => baseModel.Submodels, () => subModels) .Where(() => subModels.ID.Contains(IDsSubModels)) .List<MyModel>();

NHibernate的QueryOver与提取导致多个SQL查询和数据库命中

我试图select一个实体并获取相关列表: Session.QueryOver<UserRole>() .Fetch(x => x.UsersInRole).Eager .List(); 这导致了很多数据库命中。 第一个是这样的: SELECT … FROM UserRoles left outer join UsersInRoles on … 还有几百个单独的查询,如下所示: SELECT … FROM UsersInRoles left outer join UserRoles on … WHERE UserRoles.UserId=? 映射如下: public class UserRoleMap : ClassMap<UserRole> { public UserRoleMap() { Id(x => x.Id); Map(x => x.RoleName); HasManyToMany(x => x.UsersInRole) .Inverse() .LazyLoad() .Table("UsersInRoles"); } }