Linq to NHibernate返回名称以字符串列表的内容开头的实体

时间:2014-03-14 14:16:36

标签: c# linq nhibernate collections linq-to-nhibernate

是否可以在Linq to NHibernate中执行类似的操作 - “获取名称以列表中的任何字符串开头的所有实体”。

我有这个问题:

var result=session.Query<Entity>()
                  .Where(e=> listOfStrings.Any(s=> e.Name.StartsWith(s)))
                  .ToList();

但我得到

  

“NotSupportedException:不支持指定的方法。”

1 个答案:

答案 0 :(得分:1)

试试这个:

var query = session.QueryOver<Entity>();
var disjunction = new Disjunction();

foreach (var s in listOfStrings)
{
    disjunction.Add(Restrictions.On<Entity>(e => e.Name)
        .IsLike(s, MatchMode.Start));
}

var result = query.Where(disjunction).List();