NHibernate如何编写一个类似于列表或数组中的任何项的查询

本文关键字:列表 数组 任何项 类似于 查询 一个 何编写 NHibernate | 更新日期: 2023-09-27 17:52:58

我正在努力解决以下问题。有人能告诉我怎么做吗?

如何将nhibernate查询写入下面的

select * from tableA where description like (*Any of the items from a lst*)
List<string> lst = new List<string>
{
     "AAA","BBB","CCC","DDD"
}

目前我正在选择所有的记录,并在内存集合上应用此过滤。

实际代码:

    private List<string> lst = new List<string>{
        "AMV",
        "BMVi",
        "CMV",
        "DTL"
    }
    public virtual IEnumerable<Asset> ReplayAssets(DateTime updatedDateTimeFrom, DateTime updatedDateTimeTo)
    {
        Asset assetAlias = null;
        var query = Session.QueryOver(() => assetAlias);
        //Here i need to add something like
        query.where(()=>assetAlias.title.like(*any item in the above list lst* )
        query.Where(() => assetAlias.LastUpdatedDate.IsBetween(updatedDateTimeFrom).And(updatedDateTimeTo));
        return query.Future<Asset>();
    }

谢谢

NHibernate如何编写一个类似于列表或数组中的任何项的查询

很简单。

var lst = new List<string>
{
  "AAA", "BBB", "CCC", "DDD"
};
var items = Session.Query<TableA>
  .Where(x => lst.Contains(x.Description))
  .ToList();