【发布时间】:2018-09-07 17:54:22
【问题描述】:
我有以下方法
public SomeObj LoadSomeData(int id)
{
using (var context = new DataContext())
{
var result =
context.Database.SqlQuery<SomeObj>
($"SELECT * FROM SOMEOBJECT WHERE id = {id}")
return result;
}
}
这很好,现在规范已经改变,我需要查找多个ids。我将 id 作为 int 列表获取并返回一个列表。我读了一些关于 Sql Query 的内容,我可以使用 IN 并传递多个值。所以这是我的改变:
public List<SomeObj> LoadSomeData(List<int> listOfIds)
{
using (var context = new DataContext())
{
var result =
context.Database.SqlQuery<SomeObj>
($"SELECT * FROM SOMEOBJECT WHERE id IN ({id})") <-- I am not sure how to pass list in
return result;
}
}
当我手动将值传递给 1、2、3 等查询时,第二种方法有效,但是如何将列表传递给查询?
【问题讨论】:
-
你是什么意思多个id,而不是返回一个特定的id,你想用这些id抓取一批记录?
-
($"SELECT * FROM SOMEOBJECT WHERE id IN (1,2,3,4)")