AppendJoin.cs 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. using Newtonsoft.Json.Linq;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Text;
  5. using System.Linq;
  6. namespace SqlSugar
  7. {
  8. /// <summary>
  9. /// AppendJoin
  10. /// </summary>
  11. public partial class JsonQueryableProvider : IJsonQueryableProvider<JsonQueryResult>
  12. {
  13. private bool AppendJoin(JToken item)
  14. {
  15. BeforeJoin();
  16. bool isJoin = true;
  17. var value = item.First().ToString();
  18. var obj = context.Utilities.JsonToJoinModels(value);
  19. sugarQueryable.AddJoinInfo(obj.TableName, obj.ShortName, obj.OnWhereList, GetJoinType(item));
  20. AddTableInfos(obj.TableName, obj.ShortName);
  21. AfterJoin();
  22. return isJoin;
  23. }
  24. private static JoinType GetJoinType(JToken obj)
  25. {
  26. var key = obj.Path.ToLower();
  27. if (key.Contains("right"))
  28. {
  29. return JoinType.Right;
  30. }
  31. else if (key.Contains("left"))
  32. {
  33. return JoinType.Left;
  34. }
  35. else if (key.Contains("full"))
  36. {
  37. return JoinType.Full;
  38. }
  39. else
  40. {
  41. return JoinType.Inner;
  42. }
  43. }
  44. private void AfterJoin()
  45. {
  46. }
  47. private void BeforeJoin()
  48. {
  49. }
  50. }
  51. }