code_junkie

complex query using LINQ and C#

Nov 14th, 2011
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.28 KB | None | 0 0
  1. var q = from m in db.modules
  2. from um in db.usersModules.Where(um2 => um2.userId == myUserId).Single().modules.Trim().Split(',')
  3. where um.Contains(m.moduleId.ToString())
  4. select new
  5. {
  6. moduleid = here i want the module id from modules table
  7. modulename = here i want the modulename from modules table
  8. ischecked = here i want "true" or "false" depending on if the user has this module or not
  9.  
  10. };
  11.  
  12. var userModules = db.userModules.SingleOrDefault(m => m.userId == myUserId).modules;
  13. // Get the modules of the user (a comma delimited string)
  14. var integerModules = modules.Split(',').Select(m => int.Parse(m));
  15. // Convert the comma delimited string to IEnumerable<int>
  16.  
  17. var query = db.modules.Select(x => new {
  18. x.moduleId,
  19. x.moduleName,
  20. isChecked = integerModules.Contains(x.moduleId)
  21. }); // And finally do the query
  22.  
  23. Table: "modules"
  24. moduleId moduleName
  25. 1 Recommended...
  26. 2 Blah
  27. 3 ...
  28.  
  29. Table: "usersModule"
  30. userId moduleId
  31. 1 3
  32. 1 2
  33. 1 4
  34.  
  35. var q =
  36. from m in db.modules
  37. select new {
  38. m.moduleId,
  39. m.name,
  40. db.usersModules.Exists(um => um.userId == myUserId)
  41. };
Add Comment
Please, Sign In to add comment