【问题标题】:Find Entities with NHibernate from other Object从其他对象中查找具有 NHibernate 的实体
【发布时间】:2012-11-10 16:59:37
【问题描述】:

我有一个非常大的问题: 我正在尝试使用其他对象查找实体(使用 NHibernate)。例子: 员工(实体)-> {姓名、姓氏、电子邮件、地址} EmplyeeSearchFilters(过滤器对象)-> { Name, LastName, Email, Address } 然后,我想将 EmployeeSearchFilters 传递给 Repository(通用)并使用 NHibernate 使用非空属性自动查找。例子: EmployeeSearchFilters -> { Name = "Nelly", LastName = null, Email = "@fibertel.com", Addres = null } 有人知道我该怎么做吗?

谢谢!

【问题讨论】:

    标签: c# nhibernate repository


    【解决方案1】:

    我认为NHibernate.Criterion.Example 标准可以用于此目的。文档可以找到here

    【讨论】:

    • 嘿,我有一个新问题。示例:Employee->City 是另一个实体,我可以通过它进行搜索。我尝试创建 City 类的新实例,从数据库中获取,将属性名称与 City 实体的属性连接起来,但什么也没有。你知道如何解决它吗?
    • 有一个示例(在文档中)与您尝试尝试的类似:在 City 属性上创建子标准,并在属性中添加 Example 标准Name 设置。
    【解决方案2】:

    你可以通过使用这个函数来使用 linq:

        public virtual List<T> RetrieveByList<T>(Expression<Func<T, bool>> predicate)
        {
            return Session.Query<T>().Where(predicate).ToList<T>();
        }
    

    并且可以这样使用:

        RetrieveByList<Customer>(x=>x.Name == "Nelly" && x.LastName == null && x.Email == "@fibertel.com" && x.Addres == null)
    

    你可以使用动态谓词http://www.codeproject.com/Articles/28580/LINQ-and-Dynamic-Predicate-Construction-at-Runtime

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-07
      • 2010-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多