【问题标题】:Fluent Nhibernate QueryOver using "Or" and "And clause"Fluent Nhibernate QueryOver 使用“Or”和“And 子句”
【发布时间】:2015-05-08 20:05:20
【问题描述】:

假设我有以下领域模型:

 public class Fund : EntityBase
    {
        public virtual string Name { get; set; }
        public virtual IList<FundDetail> FundDetails { get; set; }
        public Fund()
        {
            FundDetails=new List<FundDetail>();

        }
    }
  public class FundDetail : EntityBase
    {
        public virtual string Symbol { get; set; }
        public virtual Fund Fund { get; set; }
    }

现在我想获取基金名称或基金详细信息符号包含一些字符串值的所有基金:

 var funds = _fundRepository.QueryOver()
                    .Left.JoinAlias(c => c.FundDetails, () => fundDetail)
                    .Future().ToList();

如何在QueryOver中使用“或”子句?所以我需要查询所有资金在哪里:

string filterVal="someval";
c=>c.Name.Lower().Contains(filterVal) or fundDetail.Symbol.Lower().Contains9filterVal

谢谢。

【问题讨论】:

    标签: c# fluent-nhibernate nhibernate-criteria


    【解决方案1】:

    您可以添加对 Where 方法的调用:

    string filterVal = "someval";
    var funds = _fundRepository.QueryOver<Fund>().
                    .Where(c => c.Name.Lower().Contains(filterVal) ||
                               c.fundDetail.Symbol.Lower().Contains(filterVal))
                    .Left.JoinAlias(c => c.FundDetails, () => fundDetail)
                    .Future().ToList();
    

    查看this article,了解有关 QueryOver 的所有其他选项。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-27
      • 1970-01-01
      • 2011-10-03
      相关资源
      最近更新 更多