namespace Yw.Service.Unit { /// /// /// public class DbFirstHelper { /// /// 初始化 /// public static bool Initial(out string msg) { msg = string.Empty; try { var connectConfig = Yw.Unit.ConfigHelper.DefaultConnectionConfig; if (connectConfig == null) { msg = "连接配置初始化失败"; return false; } connectConfig.ConfigureExternalServices = new ConfigureExternalServices() { EntityService = (property, column) => { //除主键外其他列都可空 if (!column.IsPrimarykey) { column.IsNullable = true; } if (column.DataType == StaticConfig.CodeFirst_BigString) { if (UnitParasHelper.Unit.DataBase.DbType == Yw.Unit.DbType.PostgreSql) { column.DataType = "character varying"; } } } }; var typeList = new List() { typeof(Entity.SysUnitLang), typeof(Entity.SysUnitType), typeof(Entity.SysUnitValue), typeof(Entity.SysUnitName), typeof(Entity.SysUnitTransfer) }; using (var db = new SqlSugarClient(connectConfig)) { //设置字符串默认长度 //db.CodeFirst.SetStringDefaultLength(250); //db.CodeFirst.SetStringDefaultLength(int.MaxValue); //建库:如果不存在创建数据库存在不会重复创建 createdb;注意 :Oracle和个别国产库需不支持该方法,需要手动建库 db.DbMaintenance.CreateDatabase(); db.CodeFirst.InitTables ( typeList.ToArray() ); } return true; } catch (Exception ex) { msg = ex.Message; return false; } } } }