简体   繁体   English

使用QueryOver HQL的NHibernate查询

[英]NHibernate Query using QueryOver HQL

I am writing the follow as an NHibernate Query but cannot find a solution using QueryOver as HQL: - 我正在将以下内容编写为NHibernate查询,但是找不到使用QueryOver作为HQL的解决方案:-

IQuery query = SessionFactoryContext.GetCurrentSession()
    .CreateSQLQuery(
@"SELECT s.UserID,
    Username,
    Email,Password,
    FirstName,
    LastName,
    Address1,
    Address2,
    City,
    County,
    PostalCode,
    Country 
FROM [dbl].[dbo].[User] s 
    LEFT OUTER JOIN [dbl].[dbo].[groupmembership] g ON s.UserrID = g.UserrID 
WHERE g.UserID IS NULL 
    OR (g.GroupID NOT IN (" + groupID + ")  )")

    .SetResultTransformer(Transformers.AliasToBean(typeof(User)));

return (IList<Subscriber>)query.List<User>();

Is there any way possible that this can be written as an NHibernate query? 有没有办法将其编写为NHibernate查询?

Many thanks for your help, 非常感谢您的帮助,

.CreateSQLQuery(
    @"FROM User u left join u.GroupMembership g
    WHERE g.User is null
      OR g.GroupId not in (:groupids)"
.SetParameterList("groupids", groupIds)
.List<User>();

Given that GroupMembership is a property of user and User and GroupId are properties of the GroupMembership. 假定GroupMembership是user的属性,而User和GroupId是GroupMembership的属性。 (If GroupId is the primary key, it can be simplified). (如果GroupId是主键,则可以简化)。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM