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

时间:2012-11-09 20:30:01

标签: c# nhibernate repository

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

谢谢!

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

您可以使用此功能来使用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