C# 从其他对象查找具有NHibernate的实体

C# 从其他对象查找具有NHibernate的实体,c#,nhibernate,repository,C#,Nhibernate,Repository,我有一个很大的问题: 我正在尝试使用其他对象查找实体(使用NHibernate)。例子: 员工(实体)->{姓名、姓氏、电子邮件、地址} EmployeeSearchFilters(filters对象)->{Name,LastName,Email,Address} 然后,我想将EmployeeSearchFilters传递到存储库(通用),并使用不为null的属性使用NHibernate自动查找。例子: EmployeeSearchFilters->{Name=“Nelly”,LastName=

我有一个很大的问题: 我正在尝试使用其他对象查找实体(使用NHibernate)。例子: 员工(实体)->{姓名、姓氏、电子邮件、地址} EmployeeSearchFilters(filters对象)->{Name,LastName,Email,Address} 然后,我想将EmployeeSearchFilters传递到存储库(通用),并使用不为null的属性使用NHibernate自动查找。例子: EmployeeSearchFilters->{Name=“Nelly”,LastName=null,Email=“@fibertel.com”,Addres=null} 有人知道我该怎么做


谢谢

我认为
NHibernate.criteria.Example
标准可以用于此目的。可以找到Doc

我认为
NHibernate.criteria.示例
criteria可用于此目的。可以找到文档

您可以使用此功能使用linq:

    public virtual List<T> RetrieveByList<T>(Expression<Func<T, bool>> predicate)
    {
        return Session.Query<T>().Where(predicate).ToList<T>();
    }
公共虚拟列表检索列表(表达式谓词)
{
返回Session.Query().Where(谓词).ToList();
}
可以这样使用:

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

您可以与动态谓词一起使用

您可以通过使用此函数使用linq:

    public virtual List<T> RetrieveByList<T>(Expression<Func<T, bool>> predicate)
    {
        return Session.Query<T>().Where(predicate).ToList<T>();
    }
公共虚拟列表检索列表(表达式谓词)
{
返回Session.Query().Where(谓词).ToList();
}
可以这样使用:

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

您可以使用动态谓词

嘿,我有一个新问题。示例:Employee->City是其他实体,我可以通过它进行搜索。我尝试创建City类的一个新实例,从db获取,将属性名称与City实体的属性相关联,但什么都没有。你知道如何解决它吗?有一个例子(在文档中)与你试图尝试的类似:在
City
属性上创建一个子标准,并添加一个
example
标准和属性
Name
集。嘿,我有一个新问题。示例:Employee->City是其他实体,我可以通过它进行搜索。我尝试创建City类的一个新实例,从db获取,将属性名称与City实体的属性相关联,但什么都没有。你知道如何解决它吗?有一个例子(在文档中)与你试图尝试的类似:在
City
属性上创建一个子标准,并添加一个
example
标准和属性
Name
集。