SqlSugarConfig.cs 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. using Microsoft.Extensions.Configuration;
  2. using SqlSugar;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Text;
  6. using Wms.Screen.Util.Extensions;
  7. namespace Wms.Screen.SqlSugar
  8. {
  9. public class SqlSugarConfig
  10. {
  11. /// <summary>
  12. /// 默认是SqlServer
  13. /// </summary>
  14. /// <param name="configuration">IConfiguration</param>
  15. /// <returns></returns>
  16. public static (DbType, string) GetConnectionString(IConfiguration configuration)
  17. {
  18. string type = configuration["SqlSugar:DbType"];
  19. var dbType = type.ToEnum<DbType>();
  20. switch (dbType)
  21. {
  22. case DbType.MySql:
  23. return (DbType.MySql, configuration["SqlSugar:MySqlConnectionString"]);
  24. case DbType.SqlServer:
  25. return (DbType.SqlServer, configuration["SqlSugar:SqlServerConnectionString"]);
  26. case DbType.Sqlite:
  27. return (DbType.Sqlite, configuration["SqlSugar:SqliteConnectionString"]);
  28. case DbType.Oracle:
  29. return (DbType.Oracle, configuration["SqlSugar:OracleConnectionString"]);
  30. case DbType.PostgreSQL:
  31. return (DbType.PostgreSQL, configuration["SqlSugar:PostgreSQLConnectionString"]);
  32. default:
  33. return (DbType.SqlServer, configuration["SqlSugar:SqlServerConnectionString"]);
  34. }
  35. }
  36. public static List<SqlFuncExternal> GetLambda()
  37. {
  38. //Lambda自定义解析
  39. var expMethods = new List<SqlFuncExternal>
  40. {
  41. new SqlFuncExternal()
  42. {
  43. UniqueMethodName = "ToDateFormat",
  44. MethodValue = (expInfo, dbType, expContext) =>
  45. {
  46. switch (dbType)
  47. {
  48. case DbType.SqlServer:
  49. return $"CONVERT (VARCHAR (10), {expInfo.Args[0].MemberName}, 121 )";
  50. case DbType.MySql:
  51. return $"DATE_FORMAT( {expInfo.Args[0].MemberName}, '%Y-%m-%d' ) ";
  52. case DbType.Sqlite:
  53. return $"date({expInfo.Args[0].MemberName})";
  54. case DbType.PostgreSQL:
  55. case DbType.Oracle:
  56. return $"to_date({expInfo.Args[0].MemberName},yyyy-MM-dd)";
  57. default:
  58. throw new Exception("未实现");
  59. }
  60. }
  61. },
  62. };
  63. return expMethods;
  64. }
  65. /// <summary>
  66. /// 解决数据库表名与实体名称不一致的问题 别名表
  67. /// </summary>
  68. public static readonly MappingTableList listTable = new MappingTableList()
  69. {
  70. new MappingTable() { EntityName="Sys_menu",DbTableName="sys_menu_wms",DbShortTaleName="menu"},
  71. };
  72. public static readonly MappingColumnList columns = new MappingColumnList()
  73. {
  74. };
  75. }
  76. }