namespace HStation.Service.Assets
|
{
|
/// <summary>
|
///
|
/// </summary>
|
public class DbFirstHelper
|
{
|
/// <summary>
|
/// 初始化
|
/// </summary>
|
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<Type>()
|
{
|
typeof(Entity.PumpGroup),
|
typeof(Entity.PumpGroupAndMainMap),
|
typeof(Entity.PumpMain),
|
typeof(Entity.PumpMainAndPartMap),
|
typeof(Entity.PumpPartMain),
|
typeof(Entity.PumpPropContent),
|
typeof(Entity.PumpSeries),
|
typeof(Entity.PumpType),
|
typeof(Entity.ValveMain),
|
typeof(Entity.ValveSeries),
|
typeof(Entity.ValveGroupAndMainMap),
|
typeof(Entity.ValveGroup),
|
typeof(Entity.AdaptingManage),
|
typeof(Entity.PipeLineRoughnessCoefficient),
|
typeof(Entity.PumpTypeSeriesMap),
|
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;
|
}
|
}
|
}
|
}
|