- 增加 StringLength/MaxLength 对 byte[] 的支持;

This commit is contained in:
28810
2020-06-23 14:48:06 +08:00
parent 4ddf4c01a6
commit 73eb3c8b21
12 changed files with 239 additions and 4 deletions

View File

@ -2,6 +2,7 @@ using FreeSql.DataAnnotations;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using Xunit;
@ -98,6 +99,38 @@ namespace FreeSql.Tests.MySqlConnector
public string Data { get; set; }
}
[Fact]
public void Blob()
{
var str1 = string.Join(",", Enumerable.Range(0, 10000).Select(a => "<22><><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><D0B9><EFBFBD>"));
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]
public void StringLength()
{

View File

@ -2,6 +2,7 @@ using FreeSql.DataAnnotations;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using Xunit;
@ -76,6 +77,7 @@ namespace FreeSql.Tests.Dameng
class TS_BLB01
{
public Guid Id { get; set; }
[MaxLength(-1)]
public byte[] Data { get; set; }
}
[Fact]

View File

@ -2,6 +2,7 @@ using FreeSql.DataAnnotations;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using Xunit;
@ -98,6 +99,38 @@ namespace FreeSql.Tests.MySql
public string Data { get; set; }
}
[Fact]
public void Blob()
{
var str1 = string.Join(",", Enumerable.Range(0, 10000).Select(a => "<22><><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><D0B9><EFBFBD>"));
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]
public void StringLength()
{

View File

@ -3,6 +3,7 @@ using Newtonsoft.Json;
using Oracle.ManagedDataAccess.Client;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using Xunit;
@ -101,6 +102,7 @@ namespace FreeSql.Tests.Oracle
class TS_BLB01
{
public Guid Id { get; set; }
[MaxLength(-1)]
public byte[] Data { get; set; }
}
[Fact]

View File

@ -7,6 +7,7 @@ using NpgsqlTypes;
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Net;
using System.Net.NetworkInformation;
@ -17,6 +18,38 @@ namespace FreeSql.Tests.PostgreSQL
{
public class PostgreSQLCodeFirstTest
{
[Fact]
public void Blob()
{
var str1 = string.Join(",", Enumerable.Range(0, 10000).Select(a => "<22><><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><D0B9><EFBFBD>"));
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]
public void StringLength()
{

View File

@ -2,6 +2,7 @@ using FreeSql.DataAnnotations;
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Net;
using System.Net.NetworkInformation;
@ -12,6 +13,7 @@ namespace FreeSql.Tests.ShenTong
{
public class ShenTongCodeFirstTest
{
[Fact]
public void StringLength()
{

View File

@ -3,6 +3,7 @@ using FreeSql.Tests.DataContext.SqlServer;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using Xunit;
@ -11,6 +12,38 @@ namespace FreeSql.Tests.SqlServer
{
public class SqlServerCodeFirstTest
{
[Fact]
public void Blob()
{
var str1 = string.Join(",", Enumerable.Range(0, 10000).Select(a => "<22><><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><D0B9><EFBFBD>"));
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]
public void StringLength()
{

View File

@ -2,6 +2,7 @@ using FreeSql.DataAnnotations;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using Xunit;
@ -10,6 +11,38 @@ namespace FreeSql.Tests.Sqlite
{
public class SqliteCodeFirstTest
{
[Fact]
public void Blob()
{
var str1 = string.Join(",", Enumerable.Range(0, 10000).Select(a => "<22><><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><D0B9><EFBFBD>"));
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]
public void StringLength()
{