namespace Yw.Service.Bimface
|
{
|
/// <summary>
|
///
|
/// </summary>
|
public class DbFirstHelper
|
{
|
/// <summary>
|
/// 初始化
|
/// </summary>
|
public static bool Initial(out string msg)
|
{
|
msg = string.Empty;
|
try
|
{
|
|
var connectConfig = Yw.Bimface.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 (BimfaceParasHelper.Bimface.DataBase.DbType == Yw.Bimface.DbType.PostgreSql)
|
{
|
column.DataType = "character varying";
|
}
|
}
|
}
|
};
|
|
var typeList = new List<Type>()
|
{
|
typeof(Entity.BimfaceFile),
|
typeof(Entity.BimfaceFileLabel),
|
typeof(Entity.BimfaceFileRelation),
|
typeof(Entity.BimfaceFileRelationLabel)
|
};
|
|
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;
|
}
|
}
|
|
|
|
|
}
|
}
|