Query_ScopeParam_Test.cs 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. using System.Data;
  2. using Microsoft.VisualStudio.TestTools.UnitTesting;
  3. namespace Vitorm.MsTest.CommonTest
  4. {
  5. [TestClass]
  6. public class Query_Query_ScopeParam_Test_Test
  7. {
  8. [TestMethod]
  9. public void Test_Join_Demo()
  10. {
  11. using var dbContext = DataSource.CreateDbContext();
  12. var userQuery = dbContext.Query<User>();
  13. // params form method arg
  14. QueryByArg(userQuery, 2);
  15. // params from scope
  16. {
  17. var id = 2;
  18. var query =
  19. from user in userQuery
  20. where user.id > id
  21. orderby user.id
  22. select new { user };
  23. var sql = query.ToExecuteString();
  24. var userList = query.ToList();
  25. Assert.AreEqual(4, userList.Count);
  26. Assert.AreEqual(3, userList[0].user.id);
  27. Assert.AreEqual(4, userList[1].user.id);
  28. }
  29. // params from scope
  30. {
  31. var userArg = new { id = 2 };
  32. var query =
  33. from user in userQuery
  34. where user.id > userArg.id
  35. orderby user.id
  36. select new { user };
  37. var sql = query.ToExecuteString();
  38. var userList = query.ToList();
  39. Assert.AreEqual(4, userList.Count);
  40. Assert.AreEqual(3, userList[0].user.id);
  41. Assert.AreEqual(4, userList[1].user.id);
  42. }
  43. }
  44. void QueryByArg(IQueryable<User> userQuery, int id)
  45. {
  46. // Linq Expression
  47. {
  48. var query =
  49. from user in userQuery
  50. where user.id > id
  51. orderby user.id
  52. select new { user };
  53. var sql = query.ToExecuteString();
  54. var userList = query.ToList();
  55. Assert.AreEqual(4, userList.Count);
  56. Assert.AreEqual(3, userList[0].user.id);
  57. Assert.AreEqual(4, userList[1].user.id);
  58. }
  59. }
  60. }
  61. }