0
我正在做一個基本的NHibernate查詢,並希望添加一個可能的「Where」子句,它可能有幾個過濾器或根本沒有。QueryOver有條件地有多個或零Where子句
但是,根據用戶的選擇,可能會有幾個或沒有任何要過濾的東西,即全部返回。有什麼方法可以有條件地添加where子句並在沒有任何內容過濾時省略它?
因此,我基本上不確定如何使用QueryOver添加幾個或零的where子句。
謝謝。
我正在做一個基本的NHibernate查詢,並希望添加一個可能的「Where」子句,它可能有幾個過濾器或根本沒有。QueryOver有條件地有多個或零Where子句
但是,根據用戶的選擇,可能會有幾個或沒有任何要過濾的東西,即全部返回。有什麼方法可以有條件地添加where子句並在沒有任何內容過濾時省略它?
因此,我基本上不確定如何使用QueryOver添加幾個或零的where子句。
謝謝。
你可以利用的
Restrictions.Conjunction()
舉個例子:
private IQueryOver<CustomerEntity> QueryForCustomer(int? companyCode, int[] zipCodes)
{
var customerRestritcions = Restrictions.Conjunction();
if (companyCode.HasValue)
{
customerRestritcions.Add(Restrictions.Eq(Projections.Property<CustomerEntity>(c => c.CompanyCodeId), companyCode));
}
if (zipCodes != null)
{
customerRestritcions.Add(Restrictions.In(Projections.Property<CustomerEntity>(c => c.ZipCode), zipCodes));
}
return Session.QueryOver<CustomerEntity>(() => customer)
.Where(customerRestriction)
}