namespace HStation.Service.Assets { /// /// /// public class DbFirstHelper { /// /// 初始化 /// public static bool Initial(out string msg) { msg = string.Empty; try { var connectConfig = HStation.Assets.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 (Settings.AssetsParasHelper.Assets.DataBase.DbType == HStation.Assets.DbType.PostgreSql) { column.DataType = "character varying"; } } } }; var typeList = new List() { typeof(Entity.AssetsPumpGroup), typeof(Entity.AssetsPumpGroupAndMainMapping), typeof(Entity.AssetsPumpMain), typeof(Entity.AssetsPumpMainAndPartMapping), typeof(Entity.AssetsPumpPartMain), typeof(Entity.AssetsPumpPropContent), typeof(Entity.AssetsPumpSeries), typeof(Entity.AssetsPumpType), typeof(Entity.AssetsPumpSeriesTypeMapping), typeof(Entity.AssetsPumpSeriesManufacturerMapping), //阀门 typeof(Entity.AssetsValveMain), typeof(Entity.AssetsValveSeries), typeof(Entity.AssetsValveCoefficient), //弯头 typeof(Entity.AssetsElbowMain), typeof(Entity.AssetsElbowSeries), typeof(Entity.AssetsElbowCoefficient), //三通 typeof(Entity.AssetsThreelinkMain), typeof(Entity.AssetsThreelinkSeries), typeof(Entity.AssetsThreelinkCoefficient), //四通 typeof(Entity.AssetsFourlinkMain), typeof(Entity.AssetsFourlinkSeries), typeof(Entity.AssetsFourlinkCoefficient), //管道 typeof(Entity.AssetsPipeMain), typeof(Entity.AssetsPipeSeries), typeof(Entity.AssetsPipeCoefficient), //喷头 typeof(Entity.AssetsSprinklerMain), typeof(Entity.AssetsSprinklerSeries), typeof(Entity.AssetsSprinklerCoefficient), //厂商 typeof(Entity.AssetsManufacturer), typeof(Entity.AssetsManufacturerSeries), //自定义 typeof(Entity.AssetsUserDefined), //空压机 typeof(Entity.AssetsExchangerMain), typeof(Entity.AssetsExchangerMainAndPartMapping), typeof(Entity.AssetsExchangerPartMain), typeof(Entity.AssetsExchangerPropContent), typeof(Entity.AssetsExchangerSeries), typeof(Entity.AssetsExchangerCoefficient), //换热器 typeof(Entity.AssetsCompressorPartMain), typeof(Entity.AssetsCompressorMain), typeof(Entity.AssetsCompressorMainAndPartMapping), typeof(Entity.AssetsCompressorPropContent), typeof(Entity.AssetsCompressorSeries), typeof(Entity.AssetsCompressorCoefficient), //成套设备 typeof(Entity.AssetsPackageMain), typeof(Entity.AssetsPackagePumpMapping), typeof(Entity.AssetsPackageSeries), typeof(Entity.AssetsPackageMfrMapping), typeof(Entity.AssetsPackagePartMain), typeof(Entity.AssetsPackageMainAndPartMapping), typeof(Entity.AssetsPackagePropContent), //闷头 typeof(Entity.AssetsBluntheadMain), typeof(Entity.AssetsBluntheadSeries), typeof(Entity.AssetsBluntheadCoefficient), //水池 typeof(Entity.AssetsTankMain), typeof(Entity.AssetsTankSeries), typeof(Entity.AssetsTankCoefficient), //水表 typeof(Entity.AssetsMeterMain), typeof(Entity.AssetsMeterSeries), typeof(Entity.AssetsMeterCoefficient), //流量计 typeof(Entity.AssetsFlowmeterMain), typeof(Entity.AssetsFlowmeterSeries), typeof(Entity.AssetsFlowmeterCoefficient), //消火栓 typeof(Entity.AssetsHydrantMain), typeof(Entity.AssetsHydrantSeries), typeof(Entity.AssetsHydrantCoefficient), //压力表 typeof(Entity.AssetsPressmeterMain), typeof(Entity.AssetsPressmeterSeries), typeof(Entity.AssetsPressmeterCoefficient), //过渡件 typeof(Entity.AssetsTranslationMain), typeof(Entity.AssetsTranslationSeries), typeof(Entity.AssetsTranslationCoefficient), }; 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; } } } }