获取与同一列ID

时间:2017-07-01 16:41:01

标签: c# entity-framework linq

我有下表:

  • id
  • c_id
  • ch_id

我想过滤该列表,以便接收c_id列表中包含所有ID的所有ch_id

c_id可以有多个ch_id。例如,如果列表包含“2,5”整数。我应该得到c_id,每个c_id至少包含该列表中的值。

例如,我得到返回c_id 3,因为以下行对应于查询:

  • id:1,c_id:3,ch_id:2
  • id:2,c_id:3,ch_id:5
  • id:3,c_id:3,ch_id:6

c_id也有ch_id = 6,但没关系,因为它至少需要列出列表中的那些ch_id。我不知道如何处理这个问题,我们将不胜感激。

我虽然是按c_id对表格进行分组,但表格可能非常大,我认为可能会在一段时间后使查询速度变慢。

我正在尝试在LINQ / Entity Framework中实现此查询。

1 个答案:

答案 0 :(得分:1)

担心分组太慢听起来像是对我的过早优化。分组是正确的解决方案,可能更快的方法取决于了解有关数据的更多详细信息。

var ans = from r in src group r by r.c_id into rg where desiredch.All(ach => rg.Any(r => r.ch_id == ach)) select rg.Key;