Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
184 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 Answer

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>();

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...