namespace Yw.Service.Unit
{
///
///
///
public class DbFirstHelper
{
///
/// 初始化
///
public static bool Initial(out string msg)
{
msg = string.Empty;
try
{
var connectConfig = Yw.Unit.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 (UnitParasHelper.Unit.DataBase.DbType == Yw.Unit.DbType.PostgreSql)
{
column.DataType = "character varying";
}
}
}
};
var typeList = new List()
{
typeof(Entity.SysUnitLang),
typeof(Entity.SysUnitType),
typeof(Entity.SysUnitValue),
typeof(Entity.SysUnitName),
typeof(Entity.SysUnitTransfer)
};
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;
}
}
}
}