mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-04-22 10:42:52 +08:00
- 修复 pgsql varchar(120) CodeFirst 迁移不修改长度;
This commit is contained in:
parent
71ba136e08
commit
97975b5ab5
@ -180,11 +180,80 @@ namespace base_entity
|
|||||||
[Column(DbType = "varchar(128)")]
|
[Column(DbType = "varchar(128)")]
|
||||||
public string img { get; set; }
|
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)
|
static void Main(string[] args)
|
||||||
{
|
{
|
||||||
#region 初始化 IFreeSql
|
#region 初始化 IFreeSql
|
||||||
var fsql = new FreeSql.FreeSqlBuilder()
|
var fsql = new FreeSql.FreeSqlBuilder()
|
||||||
.UseAutoSyncStructure(true)
|
.UseAutoSyncStructure(false)
|
||||||
.UseNoneCommandParameter(true)
|
.UseNoneCommandParameter(true)
|
||||||
|
|
||||||
.UseConnectionString(FreeSql.DataType.Sqlite, "data source=test1.db;max pool size=5")
|
.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.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")
|
.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)
|
.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")
|
//.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)
|
//.UseNameConvert(FreeSql.Internal.NameConvertType.ToUpper)
|
||||||
@ -225,6 +294,10 @@ namespace base_entity
|
|||||||
BaseEntity.Initialization(fsql, () => _asyncUow.Value);
|
BaseEntity.Initialization(fsql, () => _asyncUow.Value);
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
fsql.Select<TUserImg>();
|
||||||
|
|
||||||
|
var srepo = new SongRepository(fsql);
|
||||||
|
|
||||||
var sql122234 = fsql.CodeFirst.GetComparisonDDLStatements<EnterpriseInfo>();
|
var sql122234 = fsql.CodeFirst.GetComparisonDDLStatements<EnterpriseInfo>();
|
||||||
|
|
||||||
if (fsql.Ado.DataType == DataType.PostgreSQL)
|
if (fsql.Ado.DataType == DataType.PostgreSQL)
|
||||||
|
@ -29,6 +29,41 @@
|
|||||||
描述
|
描述
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</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">
|
<member name="T:EMSServerModel.Model.Role">
|
||||||
<summary>
|
<summary>
|
||||||
角色表
|
角色表
|
||||||
|
@ -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))
|
string.IsNullOrEmpty(tbcol.Attribute.OldName) == false && tbstruct.TryGetValue(tbcol.Attribute.OldName, out tbstructcol))
|
||||||
{
|
{
|
||||||
var isCommentChanged = tbstructcol.comment != (tbcol.Comment ?? "");
|
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))
|
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");
|
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)
|
if (tbcol.Attribute.IsNullable != tbstructcol.is_nullable)
|
||||||
|
@ -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))
|
string.IsNullOrEmpty(tbcol.Attribute.OldName) == false && tbstruct.TryGetValue(tbcol.Attribute.OldName, out tbstructcol))
|
||||||
{
|
{
|
||||||
var isCommentChanged = tbstructcol.comment != (tbcol.Comment ?? "");
|
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))
|
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");
|
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)
|
if (tbcol.Attribute.IsNullable != tbstructcol.is_nullable)
|
||||||
|
@ -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))
|
string.IsNullOrEmpty(tbcol.Attribute.OldName) == false && tbstruct.TryGetValue(tbcol.Attribute.OldName, out tbstructcol))
|
||||||
{
|
{
|
||||||
var isCommentChanged = tbstructcol.comment != (tbcol.Comment ?? "");
|
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))
|
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");
|
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)
|
if (tbcol.Attribute.IsNullable != tbstructcol.is_nullable)
|
||||||
|
@ -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))
|
string.IsNullOrEmpty(tbcol.Attribute.OldName) == false && tbstruct.TryGetValue(tbcol.Attribute.OldName, out tbstructcol))
|
||||||
{
|
{
|
||||||
var isCommentChanged = tbstructcol.comment != (tbcol.Comment ?? "");
|
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))
|
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");
|
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)
|
if (tbcol.Attribute.IsNullable != tbstructcol.is_nullable)
|
||||||
|
@ -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))
|
string.IsNullOrEmpty(tbcol.Attribute.OldName) == false && tbstruct.TryGetValue(tbcol.Attribute.OldName, out tbstructcol))
|
||||||
{
|
{
|
||||||
var isCommentChanged = tbstructcol.comment != (tbcol.Comment ?? "");
|
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))
|
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");
|
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)
|
if (tbcol.Attribute.IsNullable != tbstructcol.is_nullable)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user