DbFunction_Test.cs 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. using System.Data;
  2. using Microsoft.VisualStudio.TestTools.UnitTesting;
  3. namespace Vitorm.MsTest.CustomTest
  4. {
  5. [TestClass]
  6. public class DbFunction_Test
  7. {
  8. [TestMethod]
  9. public void Test_DbFunction()
  10. {
  11. using var dbContext = DataSource.CreateDbContext();
  12. var userQuery = dbContext.Query<User>();
  13. // select * from [User] where IIF(userFatherId is not null, 1, 0) = 1
  14. {
  15. var query = userQuery.Where(u => DbFunction.Call<int>("IIF", u.fatherId != null, 1, 0) == 1);
  16. var userList = query.ToList();
  17. Assert.AreEqual(3, userList.Count);
  18. Assert.AreEqual(3, userList.Last().id);
  19. }
  20. {
  21. var query = userQuery.Where(u => u.birth < DbFunction.Call<DateTime>("GETDATE"));
  22. var userList = query.ToList();
  23. Assert.AreEqual(6, userList.Count);
  24. }
  25. // coalesce(parameter1,parameter2, …)
  26. {
  27. var query = userQuery.Where(u => DbFunction.Call<int?>("coalesce", u.fatherId, u.motherId) != null);
  28. var userList = query.ToList();
  29. Assert.AreEqual(3, userList.Count);
  30. Assert.AreEqual(1, userList.First().id);
  31. }
  32. }
  33. }
  34. }