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;
}
}
}
}