此查询的Nhibernate标准? [英] Nhibernate Criteria for this query ?

查看:74
本文介绍了此查询的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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆