namespace HStation.Service.Assets { /// /// /// public class DbFirstHelper { /// /// 初始化 /// public static bool Initial(out string msg) { msg = string.Empty; try { var connectConfig = HStation.Assets.ConfigHelper.PostgreSqlConnectionConfig; 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 (Settings.Assets.XhsParasHelper.Xhs.DataBase.DbType == HStation.Assets.DbType.PostgreSql) { column.DataType = "character varying"; } } } }; var typeList = new List() { typeof(Entity.PumpGroup), typeof(Entity.PumpGroupAndMainMap), typeof(Entity.PumpMain), typeof(Entity.PumpMainAndPartMap), typeof(Entity.PumpPartMain), typeof(Entity.PumpPropContent), typeof(Entity.PumpSeries), typeof(Yw.Entity.SysModule), typeof(Yw.Entity.SysType), typeof(Yw.Entity.SysCatalog), typeof(Yw.Entity.SysPropGroup), typeof(Yw.Entity.SysProp), typeof(Yw.Entity.SysPropMapping), typeof(Yw.Entity.SysPropChoice), typeof(Yw.Entity.SysPropValue), typeof(Yw.Entity.SysPropValuePure), }; 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; } } } }