namespace HStation.Xhs.DAL { /// /// /// public class DbFirstHelper { public static ConnectionConfig ConnectionConfig { get { return Xhs.ConfigHelper.PostgreSqlConnectionConfig; } } /// /// 初始化 /// public bool Initial(out string msg) { msg = string.Empty; try { #region 基础模块 var basicConnectConfig = ConnectionConfig; if (basicConnectConfig == null) { msg = "连接配置初始化失败"; return false; } basicConnectConfig.ConfigureExternalServices = new ConfigureExternalServices() { EntityService = (property, column) => { //除主键外其他列都可空 if (!column.IsPrimarykey) { column.IsNullable = true; } if (column.DataType == StaticConfig.CodeFirst_BigString) { column.DataType = "character varying"; } } }; var basicTypeList = new List(); //基础模块 basicTypeList.Add(typeof(Yw.Entity.SysModule)); basicTypeList.Add(typeof(Yw.Entity.SysType)); basicTypeList.Add(typeof(Yw.Entity.SysCatalog)); basicTypeList.Add(typeof(Yw.Entity.SysPropGroup)); basicTypeList.Add(typeof(Yw.Entity.SysProp)); basicTypeList.Add(typeof(Yw.Entity.SysPropMapping)); basicTypeList.Add(typeof(Yw.Entity.SysPropChoice)); basicTypeList.Add(typeof(Yw.Entity.SysPropValue)); basicTypeList.Add(typeof(Yw.Entity.SysPropValuePure)); basicTypeList.Add(typeof(Entity.PumpPartMain)); basicTypeList.Add(typeof(Entity.PumpPropContent)); basicTypeList.Add(typeof(Entity.PumpMainAndPartMap)); basicTypeList.Add(typeof(Entity.PumpMain)); basicTypeList.Add(typeof(Entity.PumpGroup)); basicTypeList.Add(typeof(Entity.PumpGroupAndMainMap)); basicTypeList.Add(typeof(Entity.PumpSeries)); // basicTypeList.Add(typeof(Yw.Entity.SysCatalogOrg)); //系统属性 if (basicTypeList.Count > 0) { using (var db = new SqlSugarClient(basicConnectConfig)) { //设置字符串默认长度 //db.CodeFirst.SetStringDefaultLength(250); //db.CodeFirst.SetStringDefaultLength(int.MaxValue); //建库:如果不存在创建数据库存在不会重复创建 createdb;注意 :Oracle和个别国产库需不支持该方法,需要手动建库 db.DbMaintenance.CreateDatabase(); db.CodeFirst.InitTables ( basicTypeList.ToArray() ); } } #endregion 基础模块 return true; } catch (Exception ex) { msg = ex.Message; return false; } } } }