3

这是我想要完成的 SQL:

WHERE domain_nm + '\' + group_nm in ('DOMAINNAME\USERNAME1','DOMAINNAME2\USERNAME2') 

我一辈子都找不到合适的表达方式。而且我不认为我可以使用两个表达式作为域名和组名需要连接。

谢谢!

4

4 回答 4

3

你不能使用两个表达式吗?

criteria
  .Add(Expression.In("DomainName", new string[] { "DOMAINNAME", "DOMAINNAME2" }))
  .Add(Expression.In("GroupName", new string[] { "USERNAME1", "USERNAME2" })

另一种选择是使用 Expression.Sql。

于 2008-10-18T00:26:48.520 回答
2

Expression.Sql 如下:

.Add(Expression.Sql(String.Format("{{alias}}.domain_nm + '\' + {{alias}}.group_nm in ({0})", getSqlInString(userGroups))))
于 2008-10-20T16:35:50.247 回答
0

我只想指出两个表达式不起作用,因为我需要一个表达式。

在 in 发生之前,DomainName 和 GroupName 需要连接起来。想想域帐户上的用户名。DomainName 和 GroupName 一起是唯一的,而不是单独的。

于 2008-10-20T14:15:35.973 回答
0

您可以在地图中添加只读公式字段。您将能够以这种方式查询它。使用流利的 nhibernate 看起来像这样

Map(x => x.FullName).Formula("[domain_nm] + '\' + [group_nm]")

查询将如下所示

criteria.Add(Expression.In("FullName", new string[] { "DOMAINNAME\USERNAME1", "DOMAINNAME2\USERNAME2" }))
于 2015-10-23T10:35:04.530 回答