Query_LinqMethods_Distinct_Test.cs 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. using System.Data;
  2. using Microsoft.VisualStudio.TestTools.UnitTesting;
  3. namespace Vitorm.MsTest.CommonTest
  4. {
  5. [TestClass]
  6. public class Query_LinqMethods_Distinct_Test
  7. {
  8. [TestMethod]
  9. public void Test_Distinct()
  10. {
  11. using var dbContext = DataSource.CreateDbContext();
  12. var userQuery = dbContext.Query<User>();
  13. {
  14. var query = userQuery.Select(u => new { u.fatherId }).Distinct();
  15. //var sql = query.ToExecuteString();
  16. var userList = query.ToList();
  17. var ids = userList.Select(u => u.fatherId).ToList();
  18. Assert.AreEqual(3, ids.Count);
  19. Assert.AreEqual(0, ids.Except(new int?[] { 4, 5, null }).Count());
  20. }
  21. {
  22. var query = userQuery.Select(u => u.fatherId).Distinct();
  23. //var sql = query.ToExecuteString();
  24. var ids = query.ToList();
  25. Assert.AreEqual(3, ids.Count);
  26. Assert.AreEqual(0, ids.Except(new int?[] { 4, 5, null }).Count());
  27. }
  28. {
  29. var query = userQuery.Distinct();
  30. //var sql = query.ToExecuteString();
  31. var userList = query.ToList();
  32. Assert.AreEqual(6, userList.Count);
  33. }
  34. }
  35. }
  36. }