1

I am beginner in linq, I want to convert this SQL query:

select UserId 
from Table 
where sID in (123, 124) 
group by UserId 
having count(distinct sID) = 2

I tried like this

var abc = obj_map.dbset
                 .where(x => sID.Contains(x.sID.ToString()))
                 .Select(m => UserId)
                 .Distinct()
                 .ToList();

How I can solve this?

marc_s
  • 732,580
  • 175
  • 1,330
  • 1,459
cegano
  • 11
  • 1
  • hi, perhaps might be of interest https://stackoverflow.com/questions/7325278/group-by-in-linq – jspcal Sep 19 '22 at 04:22

1 Answers1

1

You probably want something more like this:

int[] sIDs = new[] { 123, 124 };

IEnumerable<IGrouping<string, X>> abc =
    obj_map
        .dbset
        .Where(x => sIDs.Contains(x.sID))
        .GroupBy(x => x.UserId)
        .Where(gs => gs.Count() == 2);
Svyatoslav Danyliv
  • 21,911
  • 3
  • 16
  • 32
Enigmativity
  • 113,464
  • 11
  • 89
  • 172