Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
203 views
in Technique[技术] by (71.8m points)

Filtering more than one value using Nhibernate criterian in C#

I am using criterion Restrictions of nHibernate in my c# code to filter based on specific values. At the moment I am not able to filter more than one. I have tried a couple of options but they don't work. I basically want to filter both LiquidityCoverageRatio and Basel. How do I do that

 public IList<AldbReport> FindAllByReportSet(AlEtlRunContext runContext, string reportSet)
        {

            reportSet = reportSet == "LiquidityCoverageRatio" ? "LiquidityCoverageRatio || Basel" : "";
            //reportSet1 = reportSet == "Basel" ? "LiquidityCoverageRatio" : "";

            var criteria = CreateCriteria(runContext)
                .Add(Restrictions.Eq("ReportSet",  reportSet))
                //.Add(Restrictions.Eq("ReportSet", reportSet1))
                .AddOrder(Order.Asc("Name"));

            return criteria.List<AldbReport>();
        }

I have tried the following options

  reportSet = reportSet == "LiquidityCoverageRatio" ? "LiquidityCoverageRatio || Basel" : "";
  reportSet = reportSet == "LiquidityCoverageRatio" ? "LiquidityCoverageRati,Basel" : "";

and also two restrictions where reportSet1 would be the second value

.Add(Restrictions.Eq("ReportSet",  reportSet))
.Add(Restrictions.Eq("ReportSet", reportSet1))
question from:https://stackoverflow.com/questions/65647825/filtering-more-than-one-value-using-nhibernate-criterian-in-c-sharp

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
string reportSet1 = reportSet == "Basel" ? "LiquidityCoverageRatio" : "";

            var criteria = CreateCriteria(runContext)
                .Add(Restrictions.Or(
                    Restrictions.Eq("ReportSet",  reportSet),
                    Restrictions.Eq("ReportSet", reportSet1)
                    ))
                .AddOrder(Order.Asc("Name"));

            return criteria.List<AldbReport>();

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...