此查询的Nhibernate标准? [英] Nhibernate Criteria for this query ?
本文介绍了此查询的Nhibernate标准?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
您好我想为查询创建条件,但它不起作用?查询是
SELECT * FROM patientdetailinformationview其中(patientid = 101和PatientCaseId = 1316)或(patientid = 105和Case_type = 1)
请在这方面提供指导。在此先感谢
解决方案
您需要将两个单独的连接添加到单个析取中。类似于:
var conjunction1 = Restrictions.Conjunction();
conjunction1.Add(Restrictions.Eq(patientid, 101 跨度>));
conjunction1.Add(Restrictions.Eq(PatientCaseId, 1316 跨度>));
var conjunction2 = Restrictions.Conjunction();
conjunction2.Add(Restrictions.Eq(patientid, 105 跨度>));
conjunction2.Add(Restrictions.Eq(Case_type, 1 跨度>));
var orDisjunction = Restrictions.Disjunction();
orDisjunction.Add(conjunction1);
orDisjunction.Add(conjunction2);
return session.CreateCriteria( typeof (PatientDetailInformation))
.Add(orDisjunction)
.List< PatientDetailInformation>()
.ToList();
希望它帮助
Hi I want to create criteria for a query but it is not working ? The query is
SELECT * FROM patientdetailinformationview where (patientid=101 and PatientCaseId=1316) or (patientid=105 and Case_type=1)
Please guide in this regard. Thanks in advance
解决方案
You need to have two separate conjunctions added to a single disjunction. Something like:
var conjunction1 = Restrictions.Conjunction(); conjunction1.Add(Restrictions.Eq("patientid", 101)); conjunction1.Add(Restrictions.Eq("PatientCaseId", 1316)); var conjunction2 = Restrictions.Conjunction(); conjunction2.Add(Restrictions.Eq("patientid", 105)); conjunction2.Add(Restrictions.Eq("Case_type", 1)); var orDisjunction = Restrictions.Disjunction(); orDisjunction.Add(conjunction1); orDisjunction.Add(conjunction2); return session.CreateCriteria(typeof(PatientDetailInformation)) .Add(orDisjunction) .List<PatientDetailInformation>() .ToList();
Hope it helps.
这篇关于此查询的Nhibernate标准?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文