Query_Group_FirstOrDefault_Test.cs 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. using System.Data;
  2. using Microsoft.VisualStudio.TestTools.UnitTesting;
  3. namespace Vitorm.MsTest.CommonTest
  4. {
  5. [TestClass]
  6. public class Query_Group_FirstOrDefault_Test
  7. {
  8. [TestMethod]
  9. public void Test_Group_FirstOrDefault()
  10. {
  11. using var dbContext = DataSource.CreateDbContext();
  12. var userQuery = dbContext.Query<User>();
  13. // Linq Expression
  14. {
  15. var query =
  16. from user in userQuery
  17. where user.fatherId != null
  18. group user by new { user.fatherId, user.motherId } into userGroup
  19. orderby userGroup.Key.fatherId, userGroup.Key.motherId
  20. select new { userGroup.Key.fatherId, userGroup.Key.motherId };
  21. var row = query.FirstOrDefault();
  22. Assert.AreEqual(4, row?.fatherId);
  23. Assert.AreEqual(6, row?.motherId);
  24. }
  25. // Lambda Expression
  26. {
  27. var query =
  28. userQuery.Where(m => m.fatherId != null)
  29. .GroupBy(user => new { user.fatherId, user.motherId })
  30. .OrderBy(userGroup => userGroup.Key.fatherId).ThenBy(userGroup => userGroup.Key.motherId)
  31. .Select(userGroup => new
  32. {
  33. userGroup.Key.fatherId,
  34. userGroup.Key.motherId
  35. })
  36. ;
  37. var row = query.FirstOrDefault();
  38. Assert.AreEqual(4, row?.fatherId);
  39. Assert.AreEqual(6, row?.motherId);
  40. }
  41. }
  42. }
  43. }