我使用这段代码来获取我需要的ID,并将它们放在一个数组中
var userids = from a in db.Person
select a.idlist;
string[] idarray = userids.FirstOrDefault().ToString().Split(';');
如何使用此数组的id在另一个查询中选择匹配的行,如
[HttpGet]
public ActionResult GetStuff()
{
var Item = from a in db.Table
where a.id == idarray[0]
and where a.id == idarray[1]
and where a.id == idarray[2]
etc...
select new
{
a.itemid,
a.Element
};
return Json(Item, JsonRequestBehavior.AllowGet);
}
答案 0 :(得分:1)
尝试这样的事情:
var Item = from a in db.Table
where idarray.Contains(a.id)
select new
{
a.itemid,
a.Element
};
答案 1 :(得分:0)
var Item = from a in db.Table
where idarray.Contains(a.id)
select new
{
a.itemid,
a.Element
}.ToArray();
答案 2 :(得分:0)
您不想使用Extension Method Lambda语法吗?我和Linq一样,但只是有更多类似代码的视图:
var Item = db.Table.Where(x => x.Contains(a.id))
.Select(x => new
{
a.itemid,
a.Element
}).ToArray();
答案 3 :(得分:0)
这是我通常做的事情。
获取所需的ID:
var ids = something.Where(s => s.SomeCondition).Select(s => s.Id);
现在让我们根据Ids获取数据:
var response = anothertable.Where(a => ids.Contains(a.Id);
然后,您可以将其作为列表,数组或任何您想要使用它的内容。它将遍历anothertable
中的所有记录,并查找a.Id
与ids
中的任何一个匹配的记录。