UpdateMethodInfo.cs 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System.Reflection;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. namespace SqlSugar
  8. {
  9. public class UpdateMethodInfo
  10. {
  11. internal SqlSugarProvider Context { get; set; }
  12. internal MethodInfo MethodInfo { get; set; }
  13. internal object objectValue { get; set; }
  14. public int ExecuteCommand()
  15. {
  16. if (Context == null) return 0;
  17. var inertable=MethodInfo.Invoke(Context, new object[] { objectValue });
  18. var result= inertable.GetType().GetMethod("ExecuteCommand").Invoke(inertable,new object[] { });
  19. return (int)result;
  20. }
  21. public async Task<int> ExecuteCommandAsync()
  22. {
  23. if (Context == null) return 0;
  24. var inertable = MethodInfo.Invoke(Context, new object[] { objectValue });
  25. var result = inertable.GetType().GetMyMethod("ExecuteCommandAsync",0).Invoke(inertable, new object[] { });
  26. return await (Task<int>)result;
  27. }
  28. public UpdateCommonMethodInfo IgnoreColumns(params string[] ignoreColumns)
  29. {
  30. var inertable = MethodInfo.Invoke(Context, new object[] { objectValue });
  31. var newMethod = inertable.GetType().GetMyMethod("IgnoreColumns", 1,typeof(string[]));
  32. var result = newMethod.Invoke(inertable, new object[] { ignoreColumns });
  33. return new UpdateCommonMethodInfo()
  34. {
  35. Context = result
  36. };
  37. }
  38. public UpdateCommonMethodInfo UpdateColumns(params string[] updateColumns)
  39. {
  40. var inertable = MethodInfo.Invoke(Context, new object[] { objectValue });
  41. var newMethod = inertable.GetType().GetMyMethod("UpdateColumns", 1, typeof(string[]));
  42. var result = newMethod.Invoke(inertable, new object[] { updateColumns });
  43. return new UpdateCommonMethodInfo()
  44. {
  45. Context = result
  46. };
  47. }
  48. public UpdateCommonMethodInfo AS(string tableName)
  49. {
  50. var inertable = MethodInfo.Invoke(Context, new object[] { objectValue });
  51. var newMethod = inertable.GetType().GetMyMethod("AS", 1, typeof(string));
  52. var result = newMethod.Invoke(inertable, new object[] { tableName });
  53. return new UpdateCommonMethodInfo()
  54. {
  55. Context = result
  56. };
  57. }
  58. public UpdateCommonMethodInfo SplitTable()
  59. {
  60. var inertable = MethodInfo.Invoke(Context, new object[] { objectValue });
  61. var newMethod = inertable.GetType().GetMyMethod("SplitTable", 0);
  62. var result = newMethod.Invoke(inertable, new object[] { });
  63. return new UpdateCommonMethodInfo()
  64. {
  65. Context = result
  66. };
  67. }
  68. }
  69. }