大量的ORM和SQL功能

  • 本文关键字:SQL 功能 ORM massive
  • 更新时间 :
  • 英文 :


我似乎找不到任何好的例子,但是执行此类查询的最佳方法是什么

tbl.Query(SELECT * FROM PRODUCTS WHERE ProductId IN (@Ids)", idlist)

我看到Dapper ORM,你可以放一个列表,它知道该怎么做。你能用 Massive 做到这一点吗,还是我必须构建像 @0,@1,@2 这样的参数并将列表变成数组 idList.ToArray()?

看起来这

是不可能的。当我尝试(在我的情况下ids是一个数组)时,我收到错误:

No mapping exists from object type System.Int32[] to a known managed provider native type.

这往往让我认为 Massive 在很大程度上让底层 SQL 提供程序处理查询的参数化。所以是的,你将不得不像你说的那样构建参数。你可以做这样的事情:

productTable.Query(string.Format("SELECT * FROM PRODUCTS WHERE ProductId IN ({0})",
    string.Join(",", ids.Select((id, ix) => "@" + ix).ToArray())),
    ids.Cast<object>().ToArray());

最新更新