NHibernate如何使用列表或数组中的任何项来编写查询

时间:2016-06-29 11:18:20

标签: c# nhibernate oracle11g

我正在努力解决以下问题。任何人都可以帮忙怎么做?

如何将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>();
    }

由于

1 个答案:

答案 0 :(得分:0)

这很简单。

var lst = new List<string>
{
  "AAA", "BBB", "CCC", "DDD"
};

var items = Session.Query<TableA>
  .Where(x => lst.Contains(x.Description))
  .ToList();