using Microsoft.Extensions.Configuration; using SqlSugar; using System; using System.Collections.Generic; using System.Text; using Wms.Screen.Util.Extensions; namespace Wms.Screen.SqlSugar { public class SqlSugarConfig { /// /// 默认是SqlServer /// /// IConfiguration /// public static (DbType, string) GetConnectionString(IConfiguration configuration) { string type = configuration["SqlSugar:DbType"]; var dbType = type.ToEnum(); switch (dbType) { case DbType.MySql: return (DbType.MySql, configuration["SqlSugar:MySqlConnectionString"]); case DbType.SqlServer: return (DbType.SqlServer, configuration["SqlSugar:SqlServerConnectionString"]); case DbType.Sqlite: return (DbType.Sqlite, configuration["SqlSugar:SqliteConnectionString"]); case DbType.Oracle: return (DbType.Oracle, configuration["SqlSugar:OracleConnectionString"]); case DbType.PostgreSQL: return (DbType.PostgreSQL, configuration["SqlSugar:PostgreSQLConnectionString"]); default: return (DbType.SqlServer, configuration["SqlSugar:SqlServerConnectionString"]); } } public static List GetLambda() { //Lambda自定义解析 var expMethods = new List { new SqlFuncExternal() { UniqueMethodName = "ToDateFormat", MethodValue = (expInfo, dbType, expContext) => { switch (dbType) { case DbType.SqlServer: return $"CONVERT (VARCHAR (10), {expInfo.Args[0].MemberName}, 121 )"; case DbType.MySql: return $"DATE_FORMAT( {expInfo.Args[0].MemberName}, '%Y-%m-%d' ) "; case DbType.Sqlite: return $"date({expInfo.Args[0].MemberName})"; case DbType.PostgreSQL: case DbType.Oracle: return $"to_date({expInfo.Args[0].MemberName},yyyy-MM-dd)"; default: throw new Exception("未实现"); } } }, }; return expMethods; } /// /// 解决数据库表名与实体名称不一致的问题 别名表 /// public static readonly MappingTableList listTable = new MappingTableList() { new MappingTable() { EntityName="Sys_menu",DbTableName="sys_menu_wms",DbShortTaleName="menu"}, }; public static readonly MappingColumnList columns = new MappingColumnList() { }; } }