這是我想要完成的SQL:的NHibernate標準:串聯兩個列與表達
WHERE domain_nm + '\' + group_nm in ('DOMAINNAME\USERNAME1','DOMAINNAME2\USERNAME2')
我不能爲我的生活找到這個合適的表達。我不認爲我可以使用兩個表達式,因爲域名和組名需要連接。
謝謝!
這是我想要完成的SQL:的NHibernate標準:串聯兩個列與表達
WHERE domain_nm + '\' + group_nm in ('DOMAINNAME\USERNAME1','DOMAINNAME2\USERNAME2')
我不能爲我的生活找到這個合適的表達。我不認爲我可以使用兩個表達式,因爲域名和組名需要連接。
謝謝!
你不能使用兩個表達式嗎?
criteria
.Add(Expression.In("DomainName", new string[] { "DOMAINNAME", "DOMAINNAME2" }))
.Add(Expression.In("GroupName", new string[] { "USERNAME1", "USERNAME2" })
另一種選擇是使用Expression.Sql。
我只想指出,兩個表達式不會工作,因爲我需要一個單一的表達式。
DomainName和GroupName需要在in之前連接。考慮域帳戶上的用戶名。 DomainName和GroupName一起是唯一的,不是每個都是分開的。
的Expression.Sql如下:
.Add(Expression.Sql(String.Format("{{alias}}.domain_nm + '\' + {{alias}}.group_nm in ({0})", getSqlInString(userGroups))))
你可以在地圖中添加只讀公式字段。你將能夠以這種方式進行查詢。它看起來像這樣使用功能NHibernate
Map(x => x.FullName).Formula("[domain_nm] + '\' + [group_nm]")
查詢會再看看這樣
criteria.Add(Expression.In("FullName", new string[] { "DOMAINNAME\USERNAME1", "DOMAINNAME2\USERNAME2" }))