1

我正在创建一个站点,我需要从数据库中选择具有 ID 的动态 nuber 并且我使用实体框架,所以我的问题不是这样做

IQueryable source = content.Products;

List<Object> o = new List<Object>();

foreach(int ID in IDS)
 o.Add(content.Where(s => s.id == ID).FirstOrDefault()); // getting the row from DB   foreach loop

而不是这个,我想从数据库中获取所有具有动态 ID 数量的实体 Like

o = content.Where(s = s.id == ID || s.id == ID || s.ID == ID).ToList();

但是 where 条件需要像字符串一样是动态的,所以我可以从循环中添加 id,然后进行选择

string s = "where ";

foreach(int id in ids)
s += " id = " + id + " or ";

o = content.Where(s).ToList;

所以我只访问数据库一次,而不是我需要为每一行访问几次。

4

1 回答 1

0

您可以Contains为此使用:

List<Product> o = content.Where(s => ids.Contains(s.id)).ToList();

它转换为 SQL子句,并在单个查询中IN加载所有产品。ids

于 2012-07-11T19:34:53.237 回答