- 修复 pgsql varchar(120) CodeFirst 迁移不修改长度;

This commit is contained in:
2881099 2022-05-25 15:58:59 +08:00
parent 71ba136e08
commit 97975b5ab5
7 changed files with 173 additions and 8 deletions

View File

@ -180,11 +180,80 @@ namespace base_entity
[Column(DbType = "varchar(128)")]
public string img { get; set; }
}
public class SongRepository : BaseRepository<TUserImg, int>
{
public SongRepository(IFreeSql fsql) : base(fsql, null, null)
{
//fsql.CodeFirst.Entity<TUserImg>(a =>
// {
// //a.Property(b => b.Id).DbType("varchar(100)");
// a.Property(b => b.UserId).Stringlength(120);
// a.Property(b=>b.UserId).
// });
fsql.CodeFirst
.ConfigEntity<TUserImg>(a =>
{
a.Property(b => b.UserId).StringLength(120);
});
//var info= fsql.CodeFirst.GetTableByEntity(typeof(TUserImg));
var sql = fsql.CodeFirst.GetComparisonDDLStatements<TUserImg>();
var t1 = fsql.CodeFirst.GetComparisonDDLStatements(typeof(TUserImg), "TUserImg");
fsql.CodeFirst.SyncStructure<TUserImg>(); ;//同步表结构
var debug = sql;
}
//在这里增加 CURD 以外的方法
}
public interface IEntity
{
}
public partial class TUserImg : IEntity
{
///<summary>
///主键
///</summary>
public string Id { get; set; }
///<summary>
///企业
///</summary>
public string EnterpriseId { get; set; }
///<summary>
///用户id
///</summary>
public string UserId { get; set; }
///<summary>
///图片
///</summary>
public string Img { get; set; }
///<summary>
///创建人Id
///</summary>
public string CId { get; set; }
///<summary>
///创建人
///</summary>
public string CName { get; set; }
///<summary>
///创建日期
///</summary>
public DateTime CTime { get; set; }
}
static void Main(string[] args)
{
#region IFreeSql
var fsql = new FreeSql.FreeSqlBuilder()
.UseAutoSyncStructure(true)
.UseAutoSyncStructure(false)
.UseNoneCommandParameter(true)
.UseConnectionString(FreeSql.DataType.Sqlite, "data source=test1.db;max pool size=5")
@ -199,8 +268,8 @@ namespace base_entity
//.UseConnectionString(FreeSql.DataType.SqlServer, "Data Source=.;Integrated Security=True;Initial Catalog=freesqlTest;Pooling=true;Max Pool Size=3;TrustServerCertificate=true")
//.UseConnectionString(FreeSql.DataType.PostgreSQL, "Host=192.168.164.10;Port=5432;Username=postgres;Password=123456;Database=tedb;Pooling=true;Maximum Pool Size=2")
//.UseNameConvert(FreeSql.Internal.NameConvertType.ToLower)
.UseConnectionString(FreeSql.DataType.PostgreSQL, "Host=192.168.164.10;Port=5432;Username=postgres;Password=123456;Database=tedb;Pooling=true;Maximum Pool Size=2")
.UseNameConvert(FreeSql.Internal.NameConvertType.ToLower)
//.UseConnectionString(FreeSql.DataType.Oracle, "user id=user1;password=123456;data source=//127.0.0.1:1521/XE;Pooling=true;Max Pool Size=2")
//.UseNameConvert(FreeSql.Internal.NameConvertType.ToUpper)
@ -225,6 +294,10 @@ namespace base_entity
BaseEntity.Initialization(fsql, () => _asyncUow.Value);
#endregion
fsql.Select<TUserImg>();
var srepo = new SongRepository(fsql);
var sql122234 = fsql.CodeFirst.GetComparisonDDLStatements<EnterpriseInfo>();
if (fsql.Ado.DataType == DataType.PostgreSQL)

View File

@ -29,6 +29,41 @@
描述
</summary>
</member>
<member name="P:base_entity.Program.TUserImg.Id">
<summary>
主键
</summary>
</member>
<member name="P:base_entity.Program.TUserImg.EnterpriseId">
<summary>
企业
</summary>
</member>
<member name="P:base_entity.Program.TUserImg.UserId">
<summary>
用户id
</summary>
</member>
<member name="P:base_entity.Program.TUserImg.Img">
<summary>
图片
</summary>
</member>
<member name="P:base_entity.Program.TUserImg.CId">
<summary>
创建人Id
</summary>
</member>
<member name="P:base_entity.Program.TUserImg.CName">
<summary>
创建人
</summary>
</member>
<member name="P:base_entity.Program.TUserImg.CTime">
<summary>
创建日期
</summary>
</member>
<member name="T:EMSServerModel.Model.Role">
<summary>
角色表

View File

@ -225,7 +225,19 @@ where ns.nspname = {0} and c.relname = {1}", tboldname ?? tbname);
string.IsNullOrEmpty(tbcol.Attribute.OldName) == false && tbstruct.TryGetValue(tbcol.Attribute.OldName, out tbstructcol))
{
var isCommentChanged = tbstructcol.comment != (tbcol.Comment ?? "");
if (tbcol.Attribute.DbType.StartsWith(tbstructcol.sqlType, StringComparison.CurrentCultureIgnoreCase) == false ||
var sqlTypeSize = tbstructcol.sqlType;
if (sqlTypeSize.Contains("(") == false)
{
switch (sqlTypeSize.ToLower())
{
case "bit":
case "varbit":
case "bpchar":
case "varchar":
sqlTypeSize = $"{sqlTypeSize}({tbstructcol.max_length})"; break;
}
}
if (tbcol.Attribute.DbType.StartsWith(sqlTypeSize, StringComparison.CurrentCultureIgnoreCase) == false ||
tbcol.Attribute.DbType.Contains("[]") != (tbstructcol.attndims > 0))
sbalter.Append("ALTER TABLE ").Append(_commonUtils.QuoteSqlName($"{tbname[0]}.{tbname[1]}")).Append(" ALTER COLUMN ").Append(_commonUtils.QuoteSqlName(tbstructcol.column)).Append(" TYPE ").Append(tbcol.Attribute.DbType.Split(' ').First()).Append(";\r\n");
if (tbcol.Attribute.IsNullable != tbstructcol.is_nullable)

View File

@ -229,7 +229,19 @@ where ns.nspname = {0} and c.relname = {1}", tboldname ?? tbname);
string.IsNullOrEmpty(tbcol.Attribute.OldName) == false && tbstruct.TryGetValue(tbcol.Attribute.OldName, out tbstructcol))
{
var isCommentChanged = tbstructcol.comment != (tbcol.Comment ?? "");
if (tbcol.Attribute.DbType.StartsWith(tbstructcol.sqlType, StringComparison.CurrentCultureIgnoreCase) == false ||
var sqlTypeSize = tbstructcol.sqlType;
if (sqlTypeSize.Contains("(") == false)
{
switch (sqlTypeSize.ToLower())
{
case "bit":
case "varbit":
case "bpchar":
case "varchar":
sqlTypeSize = $"{sqlTypeSize}({tbstructcol.max_length})"; break;
}
}
if (tbcol.Attribute.DbType.StartsWith(sqlTypeSize, StringComparison.CurrentCultureIgnoreCase) == false ||
tbcol.Attribute.DbType.Contains("[]") != (tbstructcol.attndims > 0))
sbalter.Append("ALTER TABLE ").Append(_commonUtils.QuoteSqlName($"{tbname[0]}.{tbname[1]}")).Append(" ALTER COLUMN ").Append(_commonUtils.QuoteSqlName(tbstructcol.column)).Append(" TYPE ").Append(tbcol.Attribute.DbType.Split(' ').First()).Append(";\r\n");
if (tbcol.Attribute.IsNullable != tbstructcol.is_nullable)

View File

@ -241,7 +241,19 @@ where ns.nspname = {0} and c.relname = {1}", tboldname ?? tbname);
string.IsNullOrEmpty(tbcol.Attribute.OldName) == false && tbstruct.TryGetValue(tbcol.Attribute.OldName, out tbstructcol))
{
var isCommentChanged = tbstructcol.comment != (tbcol.Comment ?? "");
if (tbcol.Attribute.DbType.StartsWith(tbstructcol.sqlType, StringComparison.CurrentCultureIgnoreCase) == false ||
var sqlTypeSize = tbstructcol.sqlType;
if (sqlTypeSize.Contains("(") == false)
{
switch (sqlTypeSize.ToLower())
{
case "bit":
case "varbit":
case "bpchar":
case "varchar":
sqlTypeSize = $"{sqlTypeSize}({tbstructcol.max_length})"; break;
}
}
if (tbcol.Attribute.DbType.StartsWith(sqlTypeSize, StringComparison.CurrentCultureIgnoreCase) == false ||
tbcol.Attribute.DbType.Contains("[]") != (tbstructcol.attndims > 0))
sbalter.Append("ALTER TABLE ").Append(_commonUtils.QuoteSqlName($"{tbname[0]}.{tbname[1]}")).Append(" ALTER COLUMN ").Append(_commonUtils.QuoteSqlName(tbstructcol.column)).Append(" TYPE ").Append(tbcol.Attribute.DbType.Split(' ').First()).Append(";\r\n");
if (tbcol.Attribute.IsNullable != tbstructcol.is_nullable)

View File

@ -290,7 +290,16 @@ where ns.nspname = {0} and c.relname = {1}", tboldname ?? tbname);
string.IsNullOrEmpty(tbcol.Attribute.OldName) == false && tbstruct.TryGetValue(tbcol.Attribute.OldName, out tbstructcol))
{
var isCommentChanged = tbstructcol.comment != (tbcol.Comment ?? "");
if (tbcol.Attribute.DbType.StartsWith(tbstructcol.sqlType, StringComparison.CurrentCultureIgnoreCase) == false ||
var sqlTypeSize = tbstructcol.sqlType;
if (sqlTypeSize.Contains("(") == false)
{
switch (sqlTypeSize.ToLower())
{
case "bit": case "varbit": case "bpchar": case "varchar":
sqlTypeSize = $"{sqlTypeSize}({tbstructcol.max_length})"; break;
}
}
if (tbcol.Attribute.DbType.StartsWith(sqlTypeSize, StringComparison.CurrentCultureIgnoreCase) == false ||
tbcol.Attribute.DbType.Contains("[]") != (tbstructcol.attndims > 0))
sbalter.Append("ALTER TABLE ").Append(_commonUtils.QuoteSqlName($"{tbname[0]}.{tbname[1]}")).Append(" ALTER COLUMN ").Append(_commonUtils.QuoteSqlName(tbstructcol.column)).Append(" TYPE ").Append(tbcol.Attribute.DbType.Split(' ').First()).Append(";\r\n");
if (tbcol.Attribute.IsNullable != tbstructcol.is_nullable)

View File

@ -241,7 +241,19 @@ where ns.nspname = {0} and c.relname = {1}", tboldname ?? tbname);
string.IsNullOrEmpty(tbcol.Attribute.OldName) == false && tbstruct.TryGetValue(tbcol.Attribute.OldName, out tbstructcol))
{
var isCommentChanged = tbstructcol.comment != (tbcol.Comment ?? "");
if (tbcol.Attribute.DbType.StartsWith(tbstructcol.sqlType, StringComparison.CurrentCultureIgnoreCase) == false ||
var sqlTypeSize = tbstructcol.sqlType;
if (sqlTypeSize.Contains("(") == false)
{
switch (sqlTypeSize.ToLower())
{
case "bit":
case "varbit":
case "bpchar":
case "varchar":
sqlTypeSize = $"{sqlTypeSize}({tbstructcol.max_length})"; break;
}
}
if (tbcol.Attribute.DbType.StartsWith(sqlTypeSize, StringComparison.CurrentCultureIgnoreCase) == false ||
tbcol.Attribute.DbType.Contains("[]") != (tbstructcol.attndims > 0))
sbalter.Append("ALTER TABLE ").Append(_commonUtils.QuoteSqlName($"{tbname[0]}.{tbname[1]}")).Append(" ALTER TYPE ").Append(_commonUtils.QuoteSqlName(tbstructcol.column)).Append(" ").Append(tbcol.Attribute.DbType.Split(' ').First()).Append(";\r\n");
if (tbcol.Attribute.IsNullable != tbstructcol.is_nullable)