我似乎找不到任何好的示例,但是进行这样的查询的最佳方法是什么
tbl.Query(SELECT * FROM PRODUCTS WHERE ProductId IN (@Ids)", idlist)
我看到 Dapper ORM,您只需放入一个列表,它就知道该做什么。你能用 Massive 做到这一点,还是我必须构建像@0、@1、@2 这样的参数并将列表转换为数组 idList.ToArray()?
我似乎找不到任何好的示例,但是进行这样的查询的最佳方法是什么
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());