这是我想要完成的SQL:
WHERE domain_nm + '\' + group_nm in ('DOMAINNAME\USERNAME1','DOMAINNAME2\USERNAME2')
我不能为我的生活找到一个合适的表达方式。我认为我不能使用两个表达式作为域名,并且需要连接组名。
谢谢!
答案 0 :(得分:3)
你能不能使用两个表达式吗?
criteria
.Add(Expression.In("DomainName", new string[] { "DOMAINNAME", "DOMAINNAME2" }))
.Add(Expression.In("GroupName", new string[] { "USERNAME1", "USERNAME2" })
另一种选择是使用Expression.Sql。
答案 1 :(得分:2)
Expression.Sql如下:
.Add(Expression.Sql(String.Format("{{alias}}.domain_nm + '\' + {{alias}}.group_nm in ({0})", getSqlInString(userGroups))))
答案 2 :(得分:0)
我只想指出两个表达式不起作用,因为我需要一个表达式。
在发生in之前,需要连接DomainName和GroupName。考虑域帐户上的用户名。 DomainName和GroupName一起是唯一的,而不是单独的。
答案 3 :(得分:0)
您可以在地图中添加只读公式字段。您将能够以这种方式查询它。使用流利的nhibernate
看起来像这样Map(x => x.FullName).Formula("[domain_nm] + '\' + [group_nm]")
查询将如下所示
criteria.Add(Expression.In("FullName", new string[] { "DOMAINNAME\USERNAME1", "DOMAINNAME2\USERNAME2" }))