嗨:我試着看着其他職位。如果這是一個重複的帖子,我很抱歉。NHIBERNATE WHERE和多個OR條款的IQUERYOVER
SQL查詢是這樣的:
select * from ApiData where BrandID = 'SOUPBRAND' and Culture = 'de-de'
or
(BrandID = 'SOUPBRAND' and Culture = 'pt-br' and EntityType = 'contactus')
or
(BrandID = 'examplefoods')
將NHibernate的查詢是什麼樣的?
這是我到目前爲止有:
var mainQuery = _session.QueryOver<ApiData>();
foreach (var brandPermission in permissions)
{
var query = _session.QueryOver<ApiData>();
if (!string.IsNullOrEmpty(brandPermission.Culture) && !string.IsNullOrEmpty(brandPermission.Publication))
{
query = query.Where(a => (a.Culture == brandPermission.Culture)
&& (a.Publication == brandPermission.Publication)); //FetchEntries(apiUser.DefaultCulture, apiUser.Publication);
}
else if (!string.IsNullOrEmpty(brandPermission.Culture))
{
query = query.Where(a => (a.Culture == brandPermission.Culture)); //FetchEntries(apiUser.DefaultCulture);
}
query = query.Where(a => a.BrandId == brandPermission.BrandId);
//Here I would like to add
// mainQuery.AddORRestriction(query);
}
只是不知道如何去實現它。看到一個鏈接:http://www.methodicmadness.com/2012/04/extending-queryover-with-or.html但沒有幫助。
謝謝!