mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-04-22 02:32:50 +08:00
- 增加 StringLength/MaxLength 对 byte[] 的支持;
This commit is contained in:
parent
4ddf4c01a6
commit
73eb3c8b21
@ -149,6 +149,26 @@ namespace base_entity
|
|||||||
|
|
||||||
var repo = BaseEntity.Orm.Select<TestConfig>().Limit(10).ToList();
|
var repo = BaseEntity.Orm.Select<TestConfig>().Limit(10).ToList();
|
||||||
|
|
||||||
|
|
||||||
|
//void ConfigEntityProperty(object sender, FreeSql.Aop.ConfigEntityPropertyEventArgs e)
|
||||||
|
//{
|
||||||
|
// if (e.Property.PropertyType == typeof(byte[]))
|
||||||
|
// {
|
||||||
|
// var orm = sender as IFreeSql;
|
||||||
|
// switch (orm.Ado.DataType)
|
||||||
|
// {
|
||||||
|
// case DataType.SqlServer:
|
||||||
|
// e.ModifyResult.DbType = "image";
|
||||||
|
// break;
|
||||||
|
// case DataType.MySql:
|
||||||
|
// e.ModifyResult.DbType = "longblob";
|
||||||
|
// break;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
//}
|
||||||
|
//fsql.Aop.ConfigEntityProperty += ConfigEntityProperty;
|
||||||
|
|
||||||
|
|
||||||
Task.Run(async () =>
|
Task.Run(async () =>
|
||||||
{
|
{
|
||||||
using (var uow = BaseEntity.Orm.CreateUnitOfWork())
|
using (var uow = BaseEntity.Orm.CreateUnitOfWork())
|
||||||
|
@ -2,6 +2,7 @@ using FreeSql.DataAnnotations;
|
|||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
@ -98,6 +99,38 @@ namespace FreeSql.Tests.MySqlConnector
|
|||||||
public string Data { get; set; }
|
public string Data { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void Blob()
|
||||||
|
{
|
||||||
|
var str1 = string.Join(",", Enumerable.Range(0, 10000).Select(a => "ÎÒÊÇÖйúÈË"));
|
||||||
|
var data1 = Encoding.UTF8.GetBytes(str1);
|
||||||
|
|
||||||
|
var item1 = new TS_BLB01 { Data = data1 };
|
||||||
|
Assert.Equal(1, g.mysql.Insert(item1).ExecuteAffrows());
|
||||||
|
|
||||||
|
var item2 = g.mysql.Select<TS_BLB01>().Where(a => a.Id == item1.Id).First();
|
||||||
|
Assert.Equal(item1.Data.Length, item2.Data.Length);
|
||||||
|
|
||||||
|
var str2 = Encoding.UTF8.GetString(item2.Data);
|
||||||
|
Assert.Equal(str1, str2);
|
||||||
|
|
||||||
|
//NoneParameter
|
||||||
|
item1 = new TS_BLB01 { Data = data1 };
|
||||||
|
Assert.Equal(1, g.mysql.Insert<TS_BLB01>().NoneParameter().AppendData(item1).ExecuteAffrows());
|
||||||
|
|
||||||
|
item2 = g.mysql.Select<TS_BLB01>().Where(a => a.Id == item1.Id).First();
|
||||||
|
Assert.Equal(item1.Data.Length, item2.Data.Length);
|
||||||
|
|
||||||
|
str2 = Encoding.UTF8.GetString(item2.Data);
|
||||||
|
Assert.Equal(str1, str2);
|
||||||
|
}
|
||||||
|
class TS_BLB01
|
||||||
|
{
|
||||||
|
public Guid Id { get; set; }
|
||||||
|
[MaxLength(-2)]
|
||||||
|
public byte[] Data { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void StringLength()
|
public void StringLength()
|
||||||
{
|
{
|
||||||
|
@ -2,6 +2,7 @@ using FreeSql.DataAnnotations;
|
|||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
@ -76,6 +77,7 @@ namespace FreeSql.Tests.Dameng
|
|||||||
class TS_BLB01
|
class TS_BLB01
|
||||||
{
|
{
|
||||||
public Guid Id { get; set; }
|
public Guid Id { get; set; }
|
||||||
|
[MaxLength(-1)]
|
||||||
public byte[] Data { get; set; }
|
public byte[] Data { get; set; }
|
||||||
}
|
}
|
||||||
[Fact]
|
[Fact]
|
||||||
|
@ -2,6 +2,7 @@ using FreeSql.DataAnnotations;
|
|||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
@ -98,6 +99,38 @@ namespace FreeSql.Tests.MySql
|
|||||||
public string Data { get; set; }
|
public string Data { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void Blob()
|
||||||
|
{
|
||||||
|
var str1 = string.Join(",", Enumerable.Range(0, 10000).Select(a => "ÎÒÊÇÖйúÈË"));
|
||||||
|
var data1 = Encoding.UTF8.GetBytes(str1);
|
||||||
|
|
||||||
|
var item1 = new TS_BLB01 { Data = data1 };
|
||||||
|
Assert.Equal(1, g.mysql.Insert(item1).ExecuteAffrows());
|
||||||
|
|
||||||
|
var item2 = g.mysql.Select<TS_BLB01>().Where(a => a.Id == item1.Id).First();
|
||||||
|
Assert.Equal(item1.Data.Length, item2.Data.Length);
|
||||||
|
|
||||||
|
var str2 = Encoding.UTF8.GetString(item2.Data);
|
||||||
|
Assert.Equal(str1, str2);
|
||||||
|
|
||||||
|
//NoneParameter
|
||||||
|
item1 = new TS_BLB01 { Data = data1 };
|
||||||
|
Assert.Equal(1, g.mysql.Insert<TS_BLB01>().NoneParameter().AppendData(item1).ExecuteAffrows());
|
||||||
|
|
||||||
|
item2 = g.mysql.Select<TS_BLB01>().Where(a => a.Id == item1.Id).First();
|
||||||
|
Assert.Equal(item1.Data.Length, item2.Data.Length);
|
||||||
|
|
||||||
|
str2 = Encoding.UTF8.GetString(item2.Data);
|
||||||
|
Assert.Equal(str1, str2);
|
||||||
|
}
|
||||||
|
class TS_BLB01
|
||||||
|
{
|
||||||
|
public Guid Id { get; set; }
|
||||||
|
[MaxLength(-2)]
|
||||||
|
public byte[] Data { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void StringLength()
|
public void StringLength()
|
||||||
{
|
{
|
||||||
|
@ -3,6 +3,7 @@ using Newtonsoft.Json;
|
|||||||
using Oracle.ManagedDataAccess.Client;
|
using Oracle.ManagedDataAccess.Client;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
@ -101,6 +102,7 @@ namespace FreeSql.Tests.Oracle
|
|||||||
class TS_BLB01
|
class TS_BLB01
|
||||||
{
|
{
|
||||||
public Guid Id { get; set; }
|
public Guid Id { get; set; }
|
||||||
|
[MaxLength(-1)]
|
||||||
public byte[] Data { get; set; }
|
public byte[] Data { get; set; }
|
||||||
}
|
}
|
||||||
[Fact]
|
[Fact]
|
||||||
|
@ -7,6 +7,7 @@ using NpgsqlTypes;
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
using System.Net.NetworkInformation;
|
using System.Net.NetworkInformation;
|
||||||
@ -17,6 +18,38 @@ namespace FreeSql.Tests.PostgreSQL
|
|||||||
{
|
{
|
||||||
public class PostgreSQLCodeFirstTest
|
public class PostgreSQLCodeFirstTest
|
||||||
{
|
{
|
||||||
|
[Fact]
|
||||||
|
public void Blob()
|
||||||
|
{
|
||||||
|
var str1 = string.Join(",", Enumerable.Range(0, 10000).Select(a => "ÎÒÊÇÖйúÈË"));
|
||||||
|
var data1 = Encoding.UTF8.GetBytes(str1);
|
||||||
|
|
||||||
|
var item1 = new TS_BLB01 { Data = data1 };
|
||||||
|
Assert.Equal(1, g.pgsql.Insert(item1).ExecuteAffrows());
|
||||||
|
|
||||||
|
var item2 = g.pgsql.Select<TS_BLB01>().Where(a => a.Id == item1.Id).First();
|
||||||
|
Assert.Equal(item1.Data.Length, item2.Data.Length);
|
||||||
|
|
||||||
|
var str2 = Encoding.UTF8.GetString(item2.Data);
|
||||||
|
Assert.Equal(str1, str2);
|
||||||
|
|
||||||
|
//NoneParameter
|
||||||
|
item1 = new TS_BLB01 { Data = data1 };
|
||||||
|
Assert.Equal(1, g.pgsql.Insert<TS_BLB01>().NoneParameter().AppendData(item1).ExecuteAffrows());
|
||||||
|
|
||||||
|
item2 = g.pgsql.Select<TS_BLB01>().Where(a => a.Id == item1.Id).First();
|
||||||
|
Assert.Equal(item1.Data.Length, item2.Data.Length);
|
||||||
|
|
||||||
|
str2 = Encoding.UTF8.GetString(item2.Data);
|
||||||
|
Assert.Equal(str1, str2);
|
||||||
|
}
|
||||||
|
class TS_BLB01
|
||||||
|
{
|
||||||
|
public Guid Id { get; set; }
|
||||||
|
[MaxLength(-1)]
|
||||||
|
public byte[] Data { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void StringLength()
|
public void StringLength()
|
||||||
{
|
{
|
||||||
|
@ -2,6 +2,7 @@ using FreeSql.DataAnnotations;
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
using System.Net.NetworkInformation;
|
using System.Net.NetworkInformation;
|
||||||
@ -12,6 +13,7 @@ namespace FreeSql.Tests.ShenTong
|
|||||||
{
|
{
|
||||||
public class ShenTongCodeFirstTest
|
public class ShenTongCodeFirstTest
|
||||||
{
|
{
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void StringLength()
|
public void StringLength()
|
||||||
{
|
{
|
||||||
|
@ -3,6 +3,7 @@ using FreeSql.Tests.DataContext.SqlServer;
|
|||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
@ -11,6 +12,38 @@ namespace FreeSql.Tests.SqlServer
|
|||||||
{
|
{
|
||||||
public class SqlServerCodeFirstTest
|
public class SqlServerCodeFirstTest
|
||||||
{
|
{
|
||||||
|
[Fact]
|
||||||
|
public void Blob()
|
||||||
|
{
|
||||||
|
var str1 = string.Join(",", Enumerable.Range(0, 10000).Select(a => "ÎÒÊÇÖйúÈË"));
|
||||||
|
var data1 = Encoding.UTF8.GetBytes(str1);
|
||||||
|
|
||||||
|
var item1 = new TS_BLB01 { Data = data1 };
|
||||||
|
Assert.Equal(1, g.sqlserver.Insert(item1).ExecuteAffrows());
|
||||||
|
|
||||||
|
var item2 = g.sqlserver.Select<TS_BLB01>().Where(a => a.Id == item1.Id).First();
|
||||||
|
Assert.Equal(item1.Data.Length, item2.Data.Length);
|
||||||
|
|
||||||
|
var str2 = Encoding.UTF8.GetString(item2.Data);
|
||||||
|
Assert.Equal(str1, str2);
|
||||||
|
|
||||||
|
//NoneParameter
|
||||||
|
item1 = new TS_BLB01 { Data = data1 };
|
||||||
|
Assert.Equal(1, g.sqlserver.Insert<TS_BLB01>().NoneParameter().AppendData(item1).ExecuteAffrows());
|
||||||
|
|
||||||
|
item2 = g.sqlserver.Select<TS_BLB01>().Where(a => a.Id == item1.Id).First();
|
||||||
|
Assert.Equal(item1.Data.Length, item2.Data.Length);
|
||||||
|
|
||||||
|
str2 = Encoding.UTF8.GetString(item2.Data);
|
||||||
|
Assert.Equal(str1, str2);
|
||||||
|
}
|
||||||
|
class TS_BLB01
|
||||||
|
{
|
||||||
|
public Guid Id { get; set; }
|
||||||
|
[MaxLength(-1)]
|
||||||
|
public byte[] Data { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void StringLength()
|
public void StringLength()
|
||||||
{
|
{
|
||||||
|
@ -2,6 +2,7 @@ using FreeSql.DataAnnotations;
|
|||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
@ -10,6 +11,38 @@ namespace FreeSql.Tests.Sqlite
|
|||||||
{
|
{
|
||||||
public class SqliteCodeFirstTest
|
public class SqliteCodeFirstTest
|
||||||
{
|
{
|
||||||
|
[Fact]
|
||||||
|
public void Blob()
|
||||||
|
{
|
||||||
|
var str1 = string.Join(",", Enumerable.Range(0, 10000).Select(a => "ÎÒÊÇÖйúÈË"));
|
||||||
|
var data1 = Encoding.UTF8.GetBytes(str1);
|
||||||
|
|
||||||
|
var item1 = new TS_BLB01 { Data = data1 };
|
||||||
|
Assert.Equal(1, g.sqlite.Insert(item1).ExecuteAffrows());
|
||||||
|
|
||||||
|
var item2 = g.sqlite.Select<TS_BLB01>().Where(a => a.Id == item1.Id).First();
|
||||||
|
Assert.Equal(item1.Data.Length, item2.Data.Length);
|
||||||
|
|
||||||
|
var str2 = Encoding.UTF8.GetString(item2.Data);
|
||||||
|
Assert.Equal(str1, str2);
|
||||||
|
|
||||||
|
//NoneParameter
|
||||||
|
item1 = new TS_BLB01 { Data = data1 };
|
||||||
|
Assert.Equal(1, g.sqlite.Insert<TS_BLB01>().NoneParameter().AppendData(item1).ExecuteAffrows());
|
||||||
|
|
||||||
|
item2 = g.sqlite.Select<TS_BLB01>().Where(a => a.Id == item1.Id).First();
|
||||||
|
Assert.Equal(item1.Data.Length, item2.Data.Length);
|
||||||
|
|
||||||
|
str2 = Encoding.UTF8.GetString(item2.Data);
|
||||||
|
Assert.Equal(str1, str2);
|
||||||
|
}
|
||||||
|
class TS_BLB01
|
||||||
|
{
|
||||||
|
public Guid Id { get; set; }
|
||||||
|
[MaxLength(-1)]
|
||||||
|
public byte[] Data { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void StringLength()
|
public void StringLength()
|
||||||
{
|
{
|
||||||
|
@ -79,7 +79,7 @@ namespace FreeSql.DataAnnotations
|
|||||||
|
|
||||||
internal int? _StringLength;
|
internal int? _StringLength;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 设置长度,针对 string 类型避免 DbType 的繁琐设置<para></para>
|
/// 设置长度,针对 string/byte[] 类型避免 DbType 的繁琐设置<para></para>
|
||||||
/// 提示:也可以使用 [MaxLength(100)]<para></para>
|
/// 提示:也可以使用 [MaxLength(100)]<para></para>
|
||||||
/// ---<para></para>
|
/// ---<para></para>
|
||||||
/// StringLength = 100 时,对应 DbType:<para></para>
|
/// StringLength = 100 时,对应 DbType:<para></para>
|
||||||
@ -90,11 +90,12 @@ namespace FreeSql.DataAnnotations
|
|||||||
/// Sqlite -> nvarchar(100)<para></para>
|
/// Sqlite -> nvarchar(100)<para></para>
|
||||||
/// ---<para></para>
|
/// ---<para></para>
|
||||||
/// StringLength < 0 时,对应 DbType:<para></para>
|
/// StringLength < 0 时,对应 DbType:<para></para>
|
||||||
/// MySql -> text (StringLength = -2 时,对应 DbType longtext)<para></para>
|
/// MySql -> text (StringLength = -2 时,对应 longtext)<para></para>
|
||||||
/// SqlServer -> nvarchar(max)<para></para>
|
/// SqlServer -> nvarchar(max)<para></para>
|
||||||
/// PostgreSQL -> text<para></para>
|
/// PostgreSQL -> text<para></para>
|
||||||
/// Oracle -> nclob<para></para>
|
/// Oracle -> nclob<para></para>
|
||||||
/// Sqlite -> text<para></para>
|
/// Sqlite -> text<para></para>
|
||||||
|
/// v1.6.0+ byte[] 支持设置 StringLength
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public int StringLength { get => _StringLength ?? 0; set => _StringLength = value; }
|
public int StringLength { get => _StringLength ?? 0; set => _StringLength = value; }
|
||||||
|
|
||||||
|
@ -80,7 +80,7 @@
|
|||||||
</member>
|
</member>
|
||||||
<member name="P:FreeSql.DataAnnotations.ColumnAttribute.StringLength">
|
<member name="P:FreeSql.DataAnnotations.ColumnAttribute.StringLength">
|
||||||
<summary>
|
<summary>
|
||||||
设置长度,针对 string 类型避免 DbType 的繁琐设置<para></para>
|
设置长度,针对 string/byte[] 类型避免 DbType 的繁琐设置<para></para>
|
||||||
提示:也可以使用 [MaxLength(100)]<para></para>
|
提示:也可以使用 [MaxLength(100)]<para></para>
|
||||||
---<para></para>
|
---<para></para>
|
||||||
StringLength = 100 时,对应 DbType:<para></para>
|
StringLength = 100 时,对应 DbType:<para></para>
|
||||||
@ -91,11 +91,12 @@
|
|||||||
Sqlite -> nvarchar(100)<para></para>
|
Sqlite -> nvarchar(100)<para></para>
|
||||||
---<para></para>
|
---<para></para>
|
||||||
StringLength < 0 时,对应 DbType:<para></para>
|
StringLength < 0 时,对应 DbType:<para></para>
|
||||||
MySql -> text (StringLength = -2 时,对应 DbType longtext)<para></para>
|
MySql -> text (StringLength = -2 时,对应 longtext)<para></para>
|
||||||
SqlServer -> nvarchar(max)<para></para>
|
SqlServer -> nvarchar(max)<para></para>
|
||||||
PostgreSQL -> text<para></para>
|
PostgreSQL -> text<para></para>
|
||||||
Oracle -> nclob<para></para>
|
Oracle -> nclob<para></para>
|
||||||
Sqlite -> text<para></para>
|
Sqlite -> text<para></para>
|
||||||
|
v1.6.0+ byte[] 支持设置 StringLength
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="P:FreeSql.DataAnnotations.ColumnAttribute.InsertValueSql">
|
<member name="P:FreeSql.DataAnnotations.ColumnAttribute.InsertValueSql">
|
||||||
|
@ -272,6 +272,48 @@ namespace FreeSql.Internal
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (colattr.MapType == typeof(byte[]) && colattr.StringLength != 0)
|
||||||
|
{
|
||||||
|
int strlen = colattr.StringLength;
|
||||||
|
var charPatten = @"(VARBINARY|BINARY|BYTEA)\s*(\([^\)]*\))?";
|
||||||
|
switch (common._orm.Ado.DataType)
|
||||||
|
{
|
||||||
|
case DataType.MySql:
|
||||||
|
case DataType.OdbcMySql:
|
||||||
|
if (strlen == -2) colattr.DbType = "LONGBLOB";
|
||||||
|
else if (strlen < 0) colattr.DbType = "BLOB";
|
||||||
|
else colattr.DbType = Regex.Replace(colattr.DbType, charPatten, $"$1({strlen})");
|
||||||
|
break;
|
||||||
|
case DataType.SqlServer:
|
||||||
|
case DataType.OdbcSqlServer:
|
||||||
|
if (strlen < 0) colattr.DbType = Regex.Replace(colattr.DbType, charPatten, $"$1(MAX)");
|
||||||
|
else colattr.DbType = Regex.Replace(colattr.DbType, charPatten, $"$1({strlen})");
|
||||||
|
break;
|
||||||
|
case DataType.PostgreSQL:
|
||||||
|
case DataType.OdbcPostgreSQL:
|
||||||
|
case DataType.OdbcKingbaseES:
|
||||||
|
case DataType.ShenTong: //驱动引发的异常:“System.Data.OscarClient.OscarException”(位于 System.Data.OscarClient.dll 中)
|
||||||
|
colattr.DbType = "BYTEA"; //变长二进制串
|
||||||
|
break;
|
||||||
|
case DataType.Oracle:
|
||||||
|
colattr.DbType = "BLOB";
|
||||||
|
break;
|
||||||
|
case DataType.Dameng:
|
||||||
|
colattr.DbType = "BLOB";
|
||||||
|
break;
|
||||||
|
case DataType.OdbcOracle:
|
||||||
|
case DataType.OdbcDameng:
|
||||||
|
colattr.DbType = "BLOB";
|
||||||
|
break;
|
||||||
|
case DataType.Sqlite:
|
||||||
|
colattr.DbType = "BLOB";
|
||||||
|
break;
|
||||||
|
case DataType.MsAccess:
|
||||||
|
if (strlen < 0) colattr.DbType = "BLOB";
|
||||||
|
else colattr.DbType = Regex.Replace(colattr.DbType, charPatten, $"$1({strlen})");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (trytb.Columns.ContainsKey(colattr.Name)) throw new Exception($"ColumnAttribute.Name {colattr.Name} 重复存在,请检查(注意:不区分大小写)");
|
if (trytb.Columns.ContainsKey(colattr.Name)) throw new Exception($"ColumnAttribute.Name {colattr.Name} 重复存在,请检查(注意:不区分大小写)");
|
||||||
if (trytb.ColumnsByCs.ContainsKey(p.Name)) throw new Exception($"属性名 {p.Name} 重复存在,请检查(注意:不区分大小写)");
|
if (trytb.ColumnsByCs.ContainsKey(p.Name)) throw new Exception($"属性名 {p.Name} 重复存在,请检查(注意:不区分大小写)");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user