diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.GBase/GBase/GBaseCodeFirstTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.GBase/GBase/GBaseCodeFirstTest.cs index 071b4590..b9e641a0 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.GBase/GBase/GBaseCodeFirstTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.GBase/GBase/GBaseCodeFirstTest.cs @@ -1,4 +1,4 @@ -using FreeSql.DataAnnotations; +锘縰sing FreeSql.DataAnnotations; using Newtonsoft.Json; using System; using System.Collections.Generic; @@ -10,12 +10,32 @@ namespace FreeSql.Tests.GBase { public class GBaseCodeFirstTest { + [Fact] + public void Test_0String() + { + var fsql = g.gbase; + fsql.Delete().Where("1=1").ExecuteAffrows(); + + Assert.Equal(1, fsql.Insert(new test_0string01 { name = @"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000" }).ExecuteAffrows()); + Assert.Equal(1, fsql.Insert(new test_0string01 { name = @"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000" }).NoneParameter().ExecuteAffrows()); + + var list = fsql.Select().ToList(); + Assert.Equal(2, list.Count); + Assert.Equal(@"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000", list[0].name); + Assert.Equal(@"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000", list[1].name); + } + class test_0string01 + { + public Guid id { get; set; } + public string name { get; set; } + } + [Fact] public void InsertUpdateParameter() { var fsql = g.gbase; fsql.CodeFirst.SyncStructure(); - var item = new ts_iupstr { id = Guid.NewGuid(), title = string.Join(",", Enumerable.Range(0, 2000).Select(a => "我是中国人")) }; + var item = new ts_iupstr { id = Guid.NewGuid(), title = string.Join(",", Enumerable.Range(0, 2000).Select(a => "鎴戞槸涓浗浜")) }; Assert.Equal(1, fsql.Insert(item).ExecuteAffrows()); var find = fsql.Select().Where(a => a.id == item.id).First(); Assert.NotNull(find); @@ -38,8 +58,8 @@ namespace FreeSql.Tests.GBase [Fact] public void Text_StringLength_1() { - var str1 = string.Join(",", Enumerable.Range(0, 10000).Select(a => "我是中国人")); - var str2 = string.Join(",", Enumerable.Range(0, 10000).Select(a => "我是中国人啊")); + var str1 = string.Join(",", Enumerable.Range(0, 10000).Select(a => "鎴戞槸涓浗浜")); + var str2 = string.Join(",", Enumerable.Range(0, 10000).Select(a => "鎴戞槸涓浗浜哄晩")); var item1 = new TS_TEXT02 { Data = str1, Data2 = str2 }; Assert.Equal(1, g.gbase.Insert(item1).ExecuteAffrows()); @@ -71,7 +91,7 @@ namespace FreeSql.Tests.GBase [Fact] public void Blob() { - var str1 = string.Join(",", Enumerable.Range(0, 10000).Select(a => "我是中国人")); + var str1 = string.Join(",", Enumerable.Range(0, 10000).Select(a => "鎴戞槸涓浗浜")); var data1 = Encoding.UTF8.GetBytes(str1); var item1 = new TS_BLB01 { Data = data1 }; @@ -116,57 +136,57 @@ namespace FreeSql.Tests.GBase } [Fact] - public void 中文表_字段() + public void 涓枃琛╛瀛楁() { - var sql = g.gbase.CodeFirst.GetComparisonDDLStatements<测试中文表>(); - g.gbase.CodeFirst.SyncStructure<测试中文表>(); + var sql = g.gbase.CodeFirst.GetComparisonDDLStatements<娴嬭瘯涓枃琛>(); + g.gbase.CodeFirst.SyncStructure<娴嬭瘯涓枃琛>(); - var item = new 测试中文表 + var item = new 娴嬭瘯涓枃琛 { - 标题 = "测试标题", - 创建时间 = DateTime.Now + 鏍囬 = "娴嬭瘯鏍囬", + 鍒涘缓鏃堕棿 = DateTime.Now }; - Assert.Equal(1, g.gbase.Insert<测试中文表>().AppendData(item).ExecuteAffrows()); - Assert.NotEqual(Guid.Empty, item.编号); - var item2 = g.gbase.Select<测试中文表>().Where(a => a.编号 == item.编号).First(); + Assert.Equal(1, g.gbase.Insert<娴嬭瘯涓枃琛>().AppendData(item).ExecuteAffrows()); + Assert.NotEqual(Guid.Empty, item.缂栧彿); + var item2 = g.gbase.Select<娴嬭瘯涓枃琛>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); - item.标题 = "测试标题更新"; - Assert.Equal(1, g.gbase.Update<测试中文表>().SetSource(item).ExecuteAffrows()); - item2 = g.gbase.Select<测试中文表>().Where(a => a.编号 == item.编号).First(); + item.鏍囬 = "娴嬭瘯鏍囬鏇存柊"; + Assert.Equal(1, g.gbase.Update<娴嬭瘯涓枃琛>().SetSource(item).ExecuteAffrows()); + item2 = g.gbase.Select<娴嬭瘯涓枃琛>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); - item.标题 = "测试标题更新_repo"; - var repo = g.gbase.GetRepository<测试中文表>(); + item.鏍囬 = "娴嬭瘯鏍囬鏇存柊_repo"; + var repo = g.gbase.GetRepository<娴嬭瘯涓枃琛>(); Assert.Equal(1, repo.Update(item)); - item2 = g.gbase.Select<测试中文表>().Where(a => a.编号 == item.编号).First(); + item2 = g.gbase.Select<娴嬭瘯涓枃琛>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); - item.标题 = "测试标题更新_repo22"; + item.鏍囬 = "娴嬭瘯鏍囬鏇存柊_repo22"; Assert.Equal(1, repo.Update(item)); - item2 = g.gbase.Select<测试中文表>().Where(a => a.编号 == item.编号).First(); + item2 = g.gbase.Select<娴嬭瘯涓枃琛>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); } - class 测试中文表 + class 娴嬭瘯涓枃琛 { [Column(IsPrimary = true)] - public Guid 编号 { get; set; } + public Guid 缂栧彿 { get; set; } - public string 标题 { get; set; } + public string 鏍囬 { get; set; } [Column(ServerTime = DateTimeKind.Local, CanUpdate = false)] - public DateTime 创建时间 { get; set; } + public DateTime 鍒涘缓鏃堕棿 { get; set; } [Column(ServerTime = DateTimeKind.Local)] - public DateTime 更新时间 { get; set; } + public DateTime 鏇存柊鏃堕棿 { get; set; } } [Fact] @@ -182,7 +202,7 @@ namespace FreeSql.Tests.GBase class AddUniquesInfo { /// - /// 编号 + /// 缂栧彿 /// public Guid id { get; set; } public string phone { get; set; } @@ -239,7 +259,7 @@ namespace FreeSql.Tests.GBase BoolNullable = true, Byte = 255, ByteNullable = 127, - Bytes = Encoding.UTF8.GetBytes("我是中国人"), + Bytes = Encoding.UTF8.GetBytes("鎴戞槸涓浗浜"), DateTime = DateTime.Now, DateTimeNullable = DateTime.Now.AddHours(-1), Decimal = 99.99M, @@ -260,7 +280,7 @@ namespace FreeSql.Tests.GBase SByteNullable = 99, Short = short.MaxValue, ShortNullable = short.MinValue + 1, - String = "我是中国人string'\\?!@#$%^&*()_+{}}{~?><<>", + String = "鎴戞槸涓浗浜簊tring'\\?!@#$%^&*()_+{}}{~?><<>", TimeSpan = TimeSpan.FromSeconds(999), TimeSpanNullable = TimeSpan.FromSeconds(60), UInt = uint.MaxValue, diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.MySqlConnector/MySqlConnector/MySqlCodeFirstTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.MySqlConnector/MySqlConnector/MySqlCodeFirstTest.cs index 146fcca4..b6a77a58 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.MySqlConnector/MySqlConnector/MySqlCodeFirstTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.MySqlConnector/MySqlConnector/MySqlCodeFirstTest.cs @@ -1,4 +1,4 @@ -using FreeSql.DataAnnotations; +锘縰sing FreeSql.DataAnnotations; using Newtonsoft.Json; using System; using System.Collections.Generic; @@ -11,12 +11,32 @@ namespace FreeSql.Tests.MySqlConnector { public class MySqlCodeFirstTest { + [Fact] + public void Test_0String() + { + var fsql = g.mysql; + fsql.Delete().Where("1=1").ExecuteAffrows(); + + Assert.Equal(1, fsql.Insert(new test_0string01 { name = @"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000" }).ExecuteAffrows()); + Assert.Equal(1, fsql.Insert(new test_0string01 { name = @"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000" }).NoneParameter().ExecuteAffrows()); + + var list = fsql.Select().ToList(); + Assert.Equal(2, list.Count); + Assert.Equal(@"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000", list[0].name); + Assert.Equal(@"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000", list[1].name); + } + class test_0string01 + { + public Guid id { get; set; } + public string name { get; set; } + } + [Fact] public void InsertUpdateParameter() { var fsql = g.mysql; fsql.CodeFirst.SyncStructure(); - var item = new ts_iupstr { id = Guid.NewGuid(), title = string.Join(",", Enumerable.Range(0, 2000).Select(a => "我是中国人")) }; + var item = new ts_iupstr { id = Guid.NewGuid(), title = string.Join(",", Enumerable.Range(0, 2000).Select(a => "鎴戞槸涓浗浜")) }; Assert.Equal(1, fsql.Insert(item).ExecuteAffrows()); var find = fsql.Select().Where(a => a.id == item.id).First(); Assert.NotNull(find); @@ -126,7 +146,7 @@ namespace FreeSql.Tests.MySqlConnector [Fact] public void Text_StringLength_1() { - var str1 = string.Join(",", Enumerable.Range(0, 1000).Select(a => "我是中国人")); + var str1 = string.Join(",", Enumerable.Range(0, 1000).Select(a => "鎴戞槸涓浗浜")); var item1 = new TS_TEXT02 { Data = str1 }; Assert.Equal(1, g.mysql.Insert(item1).ExecuteAffrows()); @@ -148,7 +168,7 @@ namespace FreeSql.Tests.MySqlConnector [Fact] public void Text() { - var str1 = string.Join(",", Enumerable.Range(0, 1000).Select(a => "我是中国人")); + var str1 = string.Join(",", Enumerable.Range(0, 1000).Select(a => "鎴戞槸涓浗浜")); var item1 = new TS_TEXT01 { Data = str1 }; Assert.Equal(1, g.mysql.Insert(item1).ExecuteAffrows()); @@ -170,7 +190,7 @@ namespace FreeSql.Tests.MySqlConnector [Fact] public void Text_StringLength_2() { - var str1 = string.Join(",", Enumerable.Range(0, 10000).Select(a => "我是中国人")); + var str1 = string.Join(",", Enumerable.Range(0, 10000).Select(a => "鎴戞槸涓浗浜")); var item1 = new TS_TEXT04 { Data = str1 }; Assert.Equal(1, g.mysql.Insert(item1).ExecuteAffrows()); @@ -192,7 +212,7 @@ namespace FreeSql.Tests.MySqlConnector [Fact] public void LongText() { - var str1 = string.Join(",", Enumerable.Range(0, 10000).Select(a => "我是中国人")); + var str1 = string.Join(",", Enumerable.Range(0, 10000).Select(a => "鎴戞槸涓浗浜")); var item1 = new TS_TEXT03 { Data = str1 }; Assert.Equal(1, g.mysql.Insert(item1).ExecuteAffrows()); @@ -214,7 +234,7 @@ namespace FreeSql.Tests.MySqlConnector [Fact] public void Blob() { - var str1 = string.Join(",", Enumerable.Range(0, 10000).Select(a => "我是中国人")); + var str1 = string.Join(",", Enumerable.Range(0, 10000).Select(a => "鎴戞槸涓浗浜")); var data1 = Encoding.UTF8.GetBytes(str1); var item1 = new TS_BLB01 { Data = data1 }; @@ -260,7 +280,7 @@ namespace FreeSql.Tests.MySqlConnector } [Fact] - public void 表名中有点() + public void 琛ㄥ悕涓湁鐐() { var item = new tbdot01 { name = "insert" }; g.mysql.Insert(item).ExecuteAffrows(); @@ -288,61 +308,61 @@ namespace FreeSql.Tests.MySqlConnector } [Fact] - public void 中文表_字段() + public void 涓枃琛╛瀛楁() { - var sql = g.mysql.CodeFirst.GetComparisonDDLStatements<测试中文表2>(); - g.mysql.CodeFirst.SyncStructure<测试中文表2>(); + var sql = g.mysql.CodeFirst.GetComparisonDDLStatements<娴嬭瘯涓枃琛2>(); + g.mysql.CodeFirst.SyncStructure<娴嬭瘯涓枃琛2>(); - var item = new 测试中文表2 + var item = new 娴嬭瘯涓枃琛2 { - 标题 = "测试标题", - 创建时间 = DateTime.Now + 鏍囬 = "娴嬭瘯鏍囬", + 鍒涘缓鏃堕棿 = DateTime.Now }; - Assert.Equal(1, g.mysql.Insert<测试中文表2>().AppendData(item).ExecuteAffrows()); - Assert.NotEqual(Guid.Empty, item.编号); - var item2 = g.mysql.Select<测试中文表2>().Where(a => a.编号 == item.编号).First(); + Assert.Equal(1, g.mysql.Insert<娴嬭瘯涓枃琛2>().AppendData(item).ExecuteAffrows()); + Assert.NotEqual(Guid.Empty, item.缂栧彿); + var item2 = g.mysql.Select<娴嬭瘯涓枃琛2>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); - g.mysql.Update<测试中文表2>().SetSource(item2).ExecuteAffrows(); + g.mysql.Update<娴嬭瘯涓枃琛2>().SetSource(item2).ExecuteAffrows(); - item.标题 = "测试标题更新"; - Assert.Equal(1, g.mysql.Update<测试中文表2>().SetSource(item).ExecuteAffrows()); - item2 = g.mysql.Select<测试中文表2>().Where(a => a.编号 == item.编号).First(); + item.鏍囬 = "娴嬭瘯鏍囬鏇存柊"; + Assert.Equal(1, g.mysql.Update<娴嬭瘯涓枃琛2>().SetSource(item).ExecuteAffrows()); + item2 = g.mysql.Select<娴嬭瘯涓枃琛2>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); - item.标题 = "测试标题更新_repo"; - var repo = g.mysql.GetRepository<测试中文表2>(); + item.鏍囬 = "娴嬭瘯鏍囬鏇存柊_repo"; + var repo = g.mysql.GetRepository<娴嬭瘯涓枃琛2>(); Assert.Equal(1, repo.Update(item)); - item2 = g.mysql.Select<测试中文表2>().Where(a => a.编号 == item.编号).First(); + item2 = g.mysql.Select<娴嬭瘯涓枃琛2>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); - item.标题 = "测试标题更新_repo22"; + item.鏍囬 = "娴嬭瘯鏍囬鏇存柊_repo22"; Assert.Equal(1, repo.Update(item)); - item2 = g.mysql.Select<测试中文表2>().Where(a => a.编号 == item.编号).First(); + item2 = g.mysql.Select<娴嬭瘯涓枃琛2>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); } - class 测试中文表2 + class 娴嬭瘯涓枃琛2 { [Column(IsPrimary = true)] - public Guid 编号 { get; set; } + public Guid 缂栧彿 { get; set; } - public string 标题 { get; set; } + public string 鏍囬 { get; set; } [Column(ServerTime = DateTimeKind.Local, CanUpdate = false)] - public DateTime 创建时间 { get; set; } + public DateTime 鍒涘缓鏃堕棿 { get; set; } [Column(ServerTime = DateTimeKind.Local)] - public DateTime 更新时间 { get; set; } + public DateTime 鏇存柊鏃堕棿 { get; set; } } [Fact] @@ -394,7 +414,7 @@ namespace FreeSql.Tests.MySqlConnector { var sql = g.mysql.CodeFirst.GetComparisonDDLStatements(); - Assert.True(string.IsNullOrEmpty(sql)); //测试运行两次后 + Assert.True(string.IsNullOrEmpty(sql)); //娴嬭瘯杩愯涓ゆ鍚 sql = g.mysql.CodeFirst.GetComparisonDDLStatements(); } @@ -415,7 +435,7 @@ namespace FreeSql.Tests.MySqlConnector testFieldBoolNullable = true, testFieldByte = 255, testFieldByteNullable = 127, - testFieldBytes = Encoding.UTF8.GetBytes("我是中国人"), + testFieldBytes = Encoding.UTF8.GetBytes("鎴戞槸涓浗浜"), testFieldDateTime = DateTime.Now, testFieldDateTimeNullable = DateTime.Now.AddHours(-1), testFieldDecimal = 99.99M, @@ -459,7 +479,7 @@ namespace FreeSql.Tests.MySqlConnector testFieldSByteNullable = 99, testFieldShort = short.MaxValue, testFieldShortNullable = short.MinValue, - testFieldString = "我是中国人string'\\?!@#$%^&*()_+{}}{~?><<>", + testFieldString = "鎴戞槸涓浗浜簊tring'\\?!@#$%^&*()_+{}}{~?><<>", testFieldChar = 'X', testFieldTimeSpan = TimeSpan.FromSeconds(999), testFieldTimeSpanNullable = TimeSpan.FromSeconds(60), @@ -675,7 +695,7 @@ namespace FreeSql.Tests.MySqlConnector } /// - /// 保存或添加,如果主键有值则尝试 Update,如果影响的行为 0 则尝试 Insert + /// 淇濆瓨鎴栨坊鍔狅紝濡傛灉涓婚敭鏈夊煎垯灏濊瘯 Update锛屽鏋滃奖鍝嶇殑琛屼负 0 鍒欏皾璇 Insert /// public void Save() { diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Dameng/DamengCodeFirstTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Dameng/DamengCodeFirstTest.cs index fed58cd8..5ec983e9 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Dameng/DamengCodeFirstTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Dameng/DamengCodeFirstTest.cs @@ -1,4 +1,4 @@ -using FreeSql.DataAnnotations; +锘縰sing FreeSql.DataAnnotations; using Newtonsoft.Json; using System; using System.Collections.Generic; @@ -10,6 +10,26 @@ namespace FreeSql.Tests.Odbc.Dameng { public class DamengCodeFirstTest { + [Fact] + public void Test_0String() + { + var fsql = g.dameng; + fsql.Delete().Where("1=1").ExecuteAffrows(); + + Assert.Equal(1, fsql.Insert(new test_0string01 { name = @"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000" }).ExecuteAffrows()); + Assert.Equal(1, fsql.Insert(new test_0string01 { name = @"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000" }).NoneParameter().ExecuteAffrows()); + + var list = fsql.Select().ToList(); + Assert.Equal(2, list.Count); + Assert.Equal(@"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000", list[0].name); + Assert.Equal(@"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000", list[1].name); + } + class test_0string01 + { + public Guid id { get; set; } + public string name { get; set; } + } + [Fact] public void StringLength() { @@ -27,106 +47,106 @@ namespace FreeSql.Tests.Odbc.Dameng } [Fact] - public void 数字表_字段() + public void 鏁板瓧琛╛瀛楁() { - var sql = g.dameng.CodeFirst.GetComparisonDDLStatements<测试数字表>(); - g.dameng.CodeFirst.SyncStructure<测试数字表>(); + var sql = g.dameng.CodeFirst.GetComparisonDDLStatements<娴嬭瘯鏁板瓧琛>(); + g.dameng.CodeFirst.SyncStructure<娴嬭瘯鏁板瓧琛>(); - var item = new 测试数字表 + var item = new 娴嬭瘯鏁板瓧琛 { - 标题 = "测试标题", - 创建时间 = DateTime.Now + 鏍囬 = "娴嬭瘯鏍囬", + 鍒涘缓鏃堕棿 = DateTime.Now }; - Assert.Equal(1, g.dameng.Insert<测试数字表>().AppendData(item).ExecuteAffrows()); - Assert.NotEqual(Guid.Empty, item.编号); - var item2 = g.dameng.Select<测试数字表>().Where(a => a.编号 == item.编号).First(); + Assert.Equal(1, g.dameng.Insert<娴嬭瘯鏁板瓧琛>().AppendData(item).ExecuteAffrows()); + Assert.NotEqual(Guid.Empty, item.缂栧彿); + var item2 = g.dameng.Select<娴嬭瘯鏁板瓧琛>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); - item.标题 = "测试标题更新"; - Assert.Equal(1, g.dameng.Update<测试数字表>().SetSource(item).ExecuteAffrows()); - item2 = g.dameng.Select<测试数字表>().Where(a => a.编号 == item.编号).First(); + item.鏍囬 = "娴嬭瘯鏍囬鏇存柊"; + Assert.Equal(1, g.dameng.Update<娴嬭瘯鏁板瓧琛>().SetSource(item).ExecuteAffrows()); + item2 = g.dameng.Select<娴嬭瘯鏁板瓧琛>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); - item.标题 = "测试标题更新_repo"; - var repo = g.dameng.GetRepository<测试数字表>(); + item.鏍囬 = "娴嬭瘯鏍囬鏇存柊_repo"; + var repo = g.dameng.GetRepository<娴嬭瘯鏁板瓧琛>(); Assert.Equal(1, repo.Update(item)); - item2 = g.dameng.Select<测试数字表>().Where(a => a.编号 == item.编号).First(); + item2 = g.dameng.Select<娴嬭瘯鏁板瓧琛>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); - item.标题 = "测试标题更新_repo22"; + item.鏍囬 = "娴嬭瘯鏍囬鏇存柊_repo22"; Assert.Equal(1, repo.Update(item)); - item2 = g.dameng.Select<测试数字表>().Where(a => a.编号 == item.编号).First(); + item2 = g.dameng.Select<娴嬭瘯鏁板瓧琛>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); } - [Table(Name = "123测试数字表")] - class 测试数字表 + [Table(Name = "123娴嬭瘯鏁板瓧琛")] + class 娴嬭瘯鏁板瓧琛 { - [Column(IsPrimary = true, Name = "123编号")] - public Guid 编号 { get; set; } + [Column(IsPrimary = true, Name = "123缂栧彿")] + public Guid 缂栧彿 { get; set; } - [Column(Name = "123标题")] - public string 标题 { get; set; } + [Column(Name = "123鏍囬")] + public string 鏍囬 { get; set; } - [Column(Name = "123创建时间")] - public DateTime 创建时间 { get; set; } + [Column(Name = "123鍒涘缓鏃堕棿")] + public DateTime 鍒涘缓鏃堕棿 { get; set; } } [Fact] - public void 中文表_字段() + public void 涓枃琛╛瀛楁() { - var sql = g.dameng.CodeFirst.GetComparisonDDLStatements<测试中文表>(); - g.dameng.CodeFirst.SyncStructure<测试中文表>(); + var sql = g.dameng.CodeFirst.GetComparisonDDLStatements<娴嬭瘯涓枃琛>(); + g.dameng.CodeFirst.SyncStructure<娴嬭瘯涓枃琛>(); - var item = new 测试中文表 + var item = new 娴嬭瘯涓枃琛 { - 标题 = "测试标题", - 创建时间 = DateTime.Now + 鏍囬 = "娴嬭瘯鏍囬", + 鍒涘缓鏃堕棿 = DateTime.Now }; - Assert.Equal(1, g.dameng.Insert<测试中文表>().AppendData(item).ExecuteAffrows()); - Assert.NotEqual(Guid.Empty, item.编号); - var item2 = g.dameng.Select<测试中文表>().Where(a => a.编号 == item.编号).First(); + Assert.Equal(1, g.dameng.Insert<娴嬭瘯涓枃琛>().AppendData(item).ExecuteAffrows()); + Assert.NotEqual(Guid.Empty, item.缂栧彿); + var item2 = g.dameng.Select<娴嬭瘯涓枃琛>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); - item.标题 = "测试标题更新"; - Assert.Equal(1, g.dameng.Update<测试中文表>().SetSource(item).ExecuteAffrows()); - item2 = g.dameng.Select<测试中文表>().Where(a => a.编号 == item.编号).First(); + item.鏍囬 = "娴嬭瘯鏍囬鏇存柊"; + Assert.Equal(1, g.dameng.Update<娴嬭瘯涓枃琛>().SetSource(item).ExecuteAffrows()); + item2 = g.dameng.Select<娴嬭瘯涓枃琛>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); - item.标题 = "测试标题更新_repo"; - var repo = g.dameng.GetRepository<测试中文表>(); + item.鏍囬 = "娴嬭瘯鏍囬鏇存柊_repo"; + var repo = g.dameng.GetRepository<娴嬭瘯涓枃琛>(); Assert.Equal(1, repo.Update(item)); - item2 = g.dameng.Select<测试中文表>().Where(a => a.编号 == item.编号).First(); + item2 = g.dameng.Select<娴嬭瘯涓枃琛>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); - item.标题 = "测试标题更新_repo22"; + item.鏍囬 = "娴嬭瘯鏍囬鏇存柊_repo22"; Assert.Equal(1, repo.Update(item)); - item2 = g.dameng.Select<测试中文表>().Where(a => a.编号 == item.编号).First(); + item2 = g.dameng.Select<娴嬭瘯涓枃琛>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); } - class 测试中文表 + class 娴嬭瘯涓枃琛 { [Column(IsPrimary = true)] - public Guid 编号 { get; set; } + public Guid 缂栧彿 { get; set; } - public string 标题 { get; set; } + public string 鏍囬 { get; set; } - public DateTime 创建时间 { get; set; } + public DateTime 鍒涘缓鏃堕棿 { get; set; } } [Fact] @@ -179,7 +199,7 @@ namespace FreeSql.Tests.Odbc.Dameng { var sql = g.dameng.CodeFirst.GetComparisonDDLStatements(); - Assert.True(string.IsNullOrEmpty(sql)); //测试运行两次后 + Assert.True(string.IsNullOrEmpty(sql)); //娴嬭瘯杩愯涓ゆ鍚 //sql = g.dameng.CodeFirst.GetComparisonDDLStatements(); } @@ -200,7 +220,7 @@ namespace FreeSql.Tests.Odbc.Dameng BoolNullable = true, Byte = 255, ByteNullable = 127, - Bytes = Encoding.UTF8.GetBytes("我是中国人"), + Bytes = Encoding.UTF8.GetBytes("鎴戞槸涓浗浜"), DateTime = DateTime.Now, DateTimeNullable = DateTime.Now.AddHours(-1), Decimal = 99.99M, @@ -221,7 +241,7 @@ namespace FreeSql.Tests.Odbc.Dameng SByteNullable = 99, Short = short.MaxValue, ShortNullable = short.MinValue, - String = "我是中国人string'\\?!@#$%^&*()_+{}}{~?><<>", + String = "鎴戞槸涓浗浜簊tring'\\?!@#$%^&*()_+{}}{~?><<>", Char = 'X', TimeSpan = TimeSpan.FromSeconds(999), TimeSpanNullable = TimeSpan.FromSeconds(60), diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Default/OdbcCodeFirstTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Default/OdbcCodeFirstTest.cs index b47bb3dc..f9989aed 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Default/OdbcCodeFirstTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Default/OdbcCodeFirstTest.cs @@ -1,4 +1,4 @@ -using FreeSql.DataAnnotations; +锘縰sing FreeSql.DataAnnotations; using Newtonsoft.Json; using System; using System.Collections.Generic; @@ -12,6 +12,26 @@ namespace FreeSql.Tests.Odbc.Default public class OdbcCodeFirstTest { + [Fact] + public void Test_0String() + { + var fsql = g.odbc; + fsql.Delete().Where("1=1").ExecuteAffrows(); + + Assert.Equal(1, fsql.Insert(new test_0string01 { name = @"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000" }).ExecuteAffrows()); + Assert.Equal(1, fsql.Insert(new test_0string01 { name = @"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000" }).NoneParameter().ExecuteAffrows()); + + var list = fsql.Select().ToList(); + Assert.Equal(2, list.Count); + Assert.Equal(@"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000", list[0].name); + Assert.Equal(@"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000", list[1].name); + } + class test_0string01 + { + public Guid id { get; set; } + public string name { get; set; } + } + [Fact] public void 涓枃琛╛瀛楁() { diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/MySql/MySqlCodeFirstTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/MySql/MySqlCodeFirstTest.cs index e269e7e0..d719a8be 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/MySql/MySqlCodeFirstTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/MySql/MySqlCodeFirstTest.cs @@ -1,4 +1,4 @@ -using FreeSql.DataAnnotations; +锘縰sing FreeSql.DataAnnotations; using Newtonsoft.Json; using System; using System.Collections.Generic; @@ -10,6 +10,26 @@ namespace FreeSql.Tests.Odbc.MySql { public class MySqlCodeFirstTest { + [Fact] + public void Test_0String() + { + var fsql = g.mysql; + fsql.Delete().Where("1=1").ExecuteAffrows(); + + Assert.Equal(1, fsql.Insert(new test_0string01 { name = @"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000" }).ExecuteAffrows()); + Assert.Equal(1, fsql.Insert(new test_0string01 { name = @"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000" }).NoneParameter().ExecuteAffrows()); + + var list = fsql.Select().ToList(); + Assert.Equal(2, list.Count); + Assert.Equal(@"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000", list[0].name); + Assert.Equal(@"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000", list[1].name); + } + class test_0string01 + { + public Guid id { get; set; } + public string name { get; set; } + } + [Fact] public void EnumStartValue1() { @@ -106,7 +126,7 @@ namespace FreeSql.Tests.Odbc.MySql } [Fact] - public void 表名中有点() + public void 琛ㄥ悕涓湁鐐() { var item = new tbdot01 { name = "insert" }; g.mysql.Insert(item).ExecuteAffrows(); @@ -134,53 +154,53 @@ namespace FreeSql.Tests.Odbc.MySql } [Fact] - public void 中文表_字段() + public void 涓枃琛╛瀛楁() { - var sql = g.mysql.CodeFirst.GetComparisonDDLStatements<测试中文表2>(); - g.mysql.CodeFirst.SyncStructure<测试中文表2>(); + var sql = g.mysql.CodeFirst.GetComparisonDDLStatements<娴嬭瘯涓枃琛2>(); + g.mysql.CodeFirst.SyncStructure<娴嬭瘯涓枃琛2>(); - var item = new 测试中文表2 + var item = new 娴嬭瘯涓枃琛2 { - 标题 = "测试标题", - 创建时间 = DateTime.Now + 鏍囬 = "娴嬭瘯鏍囬", + 鍒涘缓鏃堕棿 = DateTime.Now }; - Assert.Equal(1, g.mysql.Insert<测试中文表2>().AppendData(item).ExecuteAffrows()); - Assert.NotEqual(Guid.Empty, item.编号); - var item2 = g.mysql.Select<测试中文表2>().Where(a => a.编号 == item.编号).First(); + Assert.Equal(1, g.mysql.Insert<娴嬭瘯涓枃琛2>().AppendData(item).ExecuteAffrows()); + Assert.NotEqual(Guid.Empty, item.缂栧彿); + var item2 = g.mysql.Select<娴嬭瘯涓枃琛2>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); - item.标题 = "测试标题更新"; - Assert.Equal(1, g.mysql.Update<测试中文表2>().SetSource(item).ExecuteAffrows()); - item2 = g.mysql.Select<测试中文表2>().Where(a => a.编号 == item.编号).First(); + item.鏍囬 = "娴嬭瘯鏍囬鏇存柊"; + Assert.Equal(1, g.mysql.Update<娴嬭瘯涓枃琛2>().SetSource(item).ExecuteAffrows()); + item2 = g.mysql.Select<娴嬭瘯涓枃琛2>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); - item.标题 = "测试标题更新_repo"; - var repo = g.mysql.GetRepository<测试中文表2>(); + item.鏍囬 = "娴嬭瘯鏍囬鏇存柊_repo"; + var repo = g.mysql.GetRepository<娴嬭瘯涓枃琛2>(); Assert.Equal(1, repo.Update(item)); - item2 = g.mysql.Select<测试中文表2>().Where(a => a.编号 == item.编号).First(); + item2 = g.mysql.Select<娴嬭瘯涓枃琛2>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); - item.标题 = "测试标题更新_repo22"; + item.鏍囬 = "娴嬭瘯鏍囬鏇存柊_repo22"; Assert.Equal(1, repo.Update(item)); - item2 = g.mysql.Select<测试中文表2>().Where(a => a.编号 == item.编号).First(); + item2 = g.mysql.Select<娴嬭瘯涓枃琛2>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); } - class 测试中文表2 + class 娴嬭瘯涓枃琛2 { [Column(IsPrimary = true)] - public Guid 编号 { get; set; } + public Guid 缂栧彿 { get; set; } - public string 标题 { get; set; } + public string 鏍囬 { get; set; } - public DateTime 创建时间 { get; set; } + public DateTime 鍒涘缓鏃堕棿 { get; set; } } [Fact] @@ -232,7 +252,7 @@ namespace FreeSql.Tests.Odbc.MySql { var sql = g.mysql.CodeFirst.GetComparisonDDLStatements(); - Assert.True(string.IsNullOrEmpty(sql)); //测试运行两次后 + Assert.True(string.IsNullOrEmpty(sql)); //娴嬭瘯杩愯涓ゆ鍚 sql = g.mysql.CodeFirst.GetComparisonDDLStatements(); } @@ -253,7 +273,7 @@ namespace FreeSql.Tests.Odbc.MySql testFieldBoolNullable = true, testFieldByte = 255, testFieldByteNullable = 127, - testFieldBytes = Encoding.UTF8.GetBytes("我是中国人"), + testFieldBytes = Encoding.UTF8.GetBytes("鎴戞槸涓浗浜"), testFieldDateTime = DateTime.Now, testFieldDateTimeNullable = DateTime.Now.AddHours(-1), testFieldDecimal = 99.99M, @@ -274,7 +294,7 @@ namespace FreeSql.Tests.Odbc.MySql testFieldSByteNullable = 99, testFieldShort = short.MaxValue, testFieldShortNullable = short.MinValue, - testFieldString = "我是中国人string'\\?!@#$%^&*()_+{}}{~?><<>", + testFieldString = "鎴戞槸涓浗浜簊tring'\\?!@#$%^&*()_+{}}{~?><<>", testFieldChar = 'X', testFieldTimeSpan = TimeSpan.FromSeconds(999), testFieldTimeSpanNullable = TimeSpan.FromSeconds(60), @@ -472,7 +492,7 @@ namespace FreeSql.Tests.Odbc.MySql } /// - /// 保存或添加,如果主键有值则尝试 Update,如果影响的行为 0 则尝试 Insert + /// 淇濆瓨鎴栨坊鍔狅紝濡傛灉涓婚敭鏈夊煎垯灏濊瘯 Update锛屽鏋滃奖鍝嶇殑琛屼负 0 鍒欏皾璇 Insert /// public void Save() { diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Oracle/OracleCodeFirstTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Oracle/OracleCodeFirstTest.cs index 5c0ead2e..df59ac53 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Oracle/OracleCodeFirstTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Oracle/OracleCodeFirstTest.cs @@ -1,4 +1,4 @@ -using FreeSql.DataAnnotations; +锘縰sing FreeSql.DataAnnotations; using Newtonsoft.Json; using System; using System.Collections.Generic; @@ -10,6 +10,26 @@ namespace FreeSql.Tests.Odbc.Oracle { public class OracleCodeFirstTest { + [Fact] + public void Test_0String() + { + var fsql = g.oracle; + fsql.Delete().Where("1=1").ExecuteAffrows(); + + Assert.Equal(1, fsql.Insert(new test_0string01 { name = @"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000" }).ExecuteAffrows()); + Assert.Equal(1, fsql.Insert(new test_0string01 { name = @"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000" }).NoneParameter().ExecuteAffrows()); + + var list = fsql.Select().ToList(); + Assert.Equal(2, list.Count); + Assert.Equal(@"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000", list[0].name); + Assert.Equal(@"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000", list[1].name); + } + class test_0string01 + { + public Guid id { get; set; } + public string name { get; set; } + } + [Fact] public void StringLength() { @@ -27,106 +47,106 @@ namespace FreeSql.Tests.Odbc.Oracle } [Fact] - public void 数字表_字段() + public void 鏁板瓧琛╛瀛楁() { - var sql = g.oracle.CodeFirst.GetComparisonDDLStatements<测试数字表>(); - g.oracle.CodeFirst.SyncStructure<测试数字表>(); + var sql = g.oracle.CodeFirst.GetComparisonDDLStatements<娴嬭瘯鏁板瓧琛>(); + g.oracle.CodeFirst.SyncStructure<娴嬭瘯鏁板瓧琛>(); - var item = new 测试数字表 + var item = new 娴嬭瘯鏁板瓧琛 { - 标题 = "测试标题", - 创建时间 = DateTime.Now + 鏍囬 = "娴嬭瘯鏍囬", + 鍒涘缓鏃堕棿 = DateTime.Now }; - Assert.Equal(1, g.oracle.Insert<测试数字表>().AppendData(item).ExecuteAffrows()); - Assert.NotEqual(Guid.Empty, item.编号); - var item2 = g.oracle.Select<测试数字表>().Where(a => a.编号 == item.编号).First(); + Assert.Equal(1, g.oracle.Insert<娴嬭瘯鏁板瓧琛>().AppendData(item).ExecuteAffrows()); + Assert.NotEqual(Guid.Empty, item.缂栧彿); + var item2 = g.oracle.Select<娴嬭瘯鏁板瓧琛>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); - item.标题 = "测试标题更新"; - Assert.Equal(1, g.oracle.Update<测试数字表>().SetSource(item).ExecuteAffrows()); - item2 = g.oracle.Select<测试数字表>().Where(a => a.编号 == item.编号).First(); + item.鏍囬 = "娴嬭瘯鏍囬鏇存柊"; + Assert.Equal(1, g.oracle.Update<娴嬭瘯鏁板瓧琛>().SetSource(item).ExecuteAffrows()); + item2 = g.oracle.Select<娴嬭瘯鏁板瓧琛>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); - item.标题 = "测试标题更新_repo"; - var repo = g.oracle.GetRepository<测试数字表>(); + item.鏍囬 = "娴嬭瘯鏍囬鏇存柊_repo"; + var repo = g.oracle.GetRepository<娴嬭瘯鏁板瓧琛>(); Assert.Equal(1, repo.Update(item)); - item2 = g.oracle.Select<测试数字表>().Where(a => a.编号 == item.编号).First(); + item2 = g.oracle.Select<娴嬭瘯鏁板瓧琛>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); - item.标题 = "测试标题更新_repo22"; + item.鏍囬 = "娴嬭瘯鏍囬鏇存柊_repo22"; Assert.Equal(1, repo.Update(item)); - item2 = g.oracle.Select<测试数字表>().Where(a => a.编号 == item.编号).First(); + item2 = g.oracle.Select<娴嬭瘯鏁板瓧琛>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); } [Table(Name = "123tb")] - class 测试数字表 + class 娴嬭瘯鏁板瓧琛 { [Column(IsPrimary = true, Name = "123id")] - public Guid 编号 { get; set; } + public Guid 缂栧彿 { get; set; } [Column(Name = "123title")] - public string 标题 { get; set; } + public string 鏍囬 { get; set; } [Column(Name = "123time")] - public DateTime 创建时间 { get; set; } + public DateTime 鍒涘缓鏃堕棿 { get; set; } } [Fact] - public void 中文表_字段() + public void 涓枃琛╛瀛楁() { - var sql = g.oracle.CodeFirst.GetComparisonDDLStatements<测试中文表>(); - g.oracle.CodeFirst.SyncStructure<测试中文表>(); + var sql = g.oracle.CodeFirst.GetComparisonDDLStatements<娴嬭瘯涓枃琛>(); + g.oracle.CodeFirst.SyncStructure<娴嬭瘯涓枃琛>(); - var item = new 测试中文表 + var item = new 娴嬭瘯涓枃琛 { - 标题 = "测试标题", - 创建时间 = DateTime.Now + 鏍囬 = "娴嬭瘯鏍囬", + 鍒涘缓鏃堕棿 = DateTime.Now }; - Assert.Equal(1, g.oracle.Insert<测试中文表>().AppendData(item).ExecuteAffrows()); - Assert.NotEqual(Guid.Empty, item.编号); - var item2 = g.oracle.Select<测试中文表>().Where(a => a.编号 == item.编号).First(); + Assert.Equal(1, g.oracle.Insert<娴嬭瘯涓枃琛>().AppendData(item).ExecuteAffrows()); + Assert.NotEqual(Guid.Empty, item.缂栧彿); + var item2 = g.oracle.Select<娴嬭瘯涓枃琛>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); - item.标题 = "测试标题更新"; - Assert.Equal(1, g.oracle.Update<测试中文表>().SetSource(item).ExecuteAffrows()); - item2 = g.oracle.Select<测试中文表>().Where(a => a.编号 == item.编号).First(); + item.鏍囬 = "娴嬭瘯鏍囬鏇存柊"; + Assert.Equal(1, g.oracle.Update<娴嬭瘯涓枃琛>().SetSource(item).ExecuteAffrows()); + item2 = g.oracle.Select<娴嬭瘯涓枃琛>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); - item.标题 = "测试标题更新_repo"; - var repo = g.oracle.GetRepository<测试中文表>(); + item.鏍囬 = "娴嬭瘯鏍囬鏇存柊_repo"; + var repo = g.oracle.GetRepository<娴嬭瘯涓枃琛>(); Assert.Equal(1, repo.Update(item)); - item2 = g.oracle.Select<测试中文表>().Where(a => a.编号 == item.编号).First(); + item2 = g.oracle.Select<娴嬭瘯涓枃琛>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); - item.标题 = "测试标题更新_repo22"; + item.鏍囬 = "娴嬭瘯鏍囬鏇存柊_repo22"; Assert.Equal(1, repo.Update(item)); - item2 = g.oracle.Select<测试中文表>().Where(a => a.编号 == item.编号).First(); + item2 = g.oracle.Select<娴嬭瘯涓枃琛>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); } - class 测试中文表 + class 娴嬭瘯涓枃琛 { [Column(IsPrimary = true)] - public Guid 编号 { get; set; } + public Guid 缂栧彿 { get; set; } - public string 标题 { get; set; } + public string 鏍囬 { get; set; } - public DateTime 创建时间 { get; set; } + public DateTime 鍒涘缓鏃堕棿 { get; set; } } [Fact] @@ -177,7 +197,7 @@ namespace FreeSql.Tests.Odbc.Oracle public void GetComparisonDDLStatements() { var sql = g.oracle.CodeFirst.GetComparisonDDLStatements(); - Assert.True(string.IsNullOrEmpty(sql)); //测试运行两次后 + Assert.True(string.IsNullOrEmpty(sql)); //娴嬭瘯杩愯涓ゆ鍚 //sql = g.oracle.CodeFirst.GetComparisonDDLStatements(); } @@ -190,7 +210,7 @@ namespace FreeSql.Tests.Odbc.Oracle var item = new TableAllType { }; for (var a = 0; a < 100; a++) { - try //ERROR [23000] [Oracle][ODBC][Ora]ORA-00001: 违反唯一约束条件 (1ODBC.1ODBC_TB_ALLTYPE_pk2) + try //ERROR [23000] [Oracle][ODBC][Ora]ORA-00001: 杩濆弽鍞竴绾︽潫鏉′欢 (1ODBC.1ODBC_TB_ALLTYPE_pk2) { item.Id = (int)insert.AppendData(item).ExecuteIdentity(); break; @@ -208,7 +228,7 @@ namespace FreeSql.Tests.Odbc.Oracle BoolNullable = true, Byte = 255, ByteNullable = 127, - Bytes = Encoding.UTF8.GetBytes("我是中国人"), + Bytes = Encoding.UTF8.GetBytes("鎴戞槸涓浗浜"), DateTime = DateTime.Now, DateTimeNullable = DateTime.Now.AddHours(-1), Decimal = 99.99M, @@ -229,7 +249,7 @@ namespace FreeSql.Tests.Odbc.Oracle SByteNullable = 99, Short = short.MaxValue, ShortNullable = short.MinValue, - String = "我是中国人string'\\?!@#$%^&*()_+{}}{~?><<>", + String = "鎴戞槸涓浗浜簊tring'\\?!@#$%^&*()_+{}}{~?><<>", Char = 'X', TimeSpan = TimeSpan.FromSeconds(999), TimeSpanNullable = TimeSpan.FromSeconds(60), diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/PostgreSQL/PostgreSQLCodeFirstTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/PostgreSQL/PostgreSQLCodeFirstTest.cs index 99312f7e..d02ace89 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/PostgreSQL/PostgreSQLCodeFirstTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/PostgreSQL/PostgreSQLCodeFirstTest.cs @@ -1,4 +1,4 @@ -using FreeSql.DataAnnotations; +锘縰sing FreeSql.DataAnnotations; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; @@ -14,6 +14,26 @@ namespace FreeSql.Tests.Odbc.PostgreSQL { public class PostgreSQLCodeFirstTest { + [Fact] + public void Test_0String() + { + var fsql = g.pgsql; + fsql.Delete().Where("1=1").ExecuteAffrows(); + + Assert.Equal(1, fsql.Insert(new test_0string01 { name = @"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000" }).ExecuteAffrows()); + Assert.Equal(1, fsql.Insert(new test_0string01 { name = @"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000" }).NoneParameter().ExecuteAffrows()); + + var list = fsql.Select().ToList(); + Assert.Equal(2, list.Count); + Assert.Equal(@"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000", list[0].name); + Assert.Equal(@"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000", list[1].name); + } + class test_0string01 + { + public Guid id { get; set; } + public string name { get; set; } + } + [Fact] public void StringLength() { @@ -31,53 +51,53 @@ namespace FreeSql.Tests.Odbc.PostgreSQL } [Fact] - public void 中文表_字段() + public void 涓枃琛╛瀛楁() { - var sql = g.pgsql.CodeFirst.GetComparisonDDLStatements<测试中文表>(); - g.pgsql.CodeFirst.SyncStructure<测试中文表>(); + var sql = g.pgsql.CodeFirst.GetComparisonDDLStatements<娴嬭瘯涓枃琛>(); + g.pgsql.CodeFirst.SyncStructure<娴嬭瘯涓枃琛>(); - var item = new 测试中文表 + var item = new 娴嬭瘯涓枃琛 { - 标题 = "测试标题", - 创建时间 = DateTime.Now + 鏍囬 = "娴嬭瘯鏍囬", + 鍒涘缓鏃堕棿 = DateTime.Now }; - Assert.Equal(1, g.pgsql.Insert<测试中文表>().AppendData(item).ExecuteAffrows()); - Assert.NotEqual(Guid.Empty, item.编号); - var item2 = g.pgsql.Select<测试中文表>().Where(a => a.编号 == item.编号).First(); + Assert.Equal(1, g.pgsql.Insert<娴嬭瘯涓枃琛>().AppendData(item).ExecuteAffrows()); + Assert.NotEqual(Guid.Empty, item.缂栧彿); + var item2 = g.pgsql.Select<娴嬭瘯涓枃琛>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); - item.标题 = "测试标题更新"; - Assert.Equal(1, g.pgsql.Update<测试中文表>().SetSource(item).ExecuteAffrows()); - item2 = g.pgsql.Select<测试中文表>().Where(a => a.编号 == item.编号).First(); + item.鏍囬 = "娴嬭瘯鏍囬鏇存柊"; + Assert.Equal(1, g.pgsql.Update<娴嬭瘯涓枃琛>().SetSource(item).ExecuteAffrows()); + item2 = g.pgsql.Select<娴嬭瘯涓枃琛>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); - item.标题 = "测试标题更新_repo"; - var repo = g.pgsql.GetRepository<测试中文表>(); + item.鏍囬 = "娴嬭瘯鏍囬鏇存柊_repo"; + var repo = g.pgsql.GetRepository<娴嬭瘯涓枃琛>(); Assert.Equal(1, repo.Update(item)); - item2 = g.pgsql.Select<测试中文表>().Where(a => a.编号 == item.编号).First(); + item2 = g.pgsql.Select<娴嬭瘯涓枃琛>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); - item.标题 = "测试标题更新_repo22"; + item.鏍囬 = "娴嬭瘯鏍囬鏇存柊_repo22"; Assert.Equal(1, repo.Update(item)); - item2 = g.pgsql.Select<测试中文表>().Where(a => a.编号 == item.编号).First(); + item2 = g.pgsql.Select<娴嬭瘯涓枃琛>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); } - class 测试中文表 + class 娴嬭瘯涓枃琛 { [Column(IsPrimary = true)] - public Guid 编号 { get; set; } + public Guid 缂栧彿 { get; set; } - public string 标题 { get; set; } + public string 鏍囬 { get; set; } - public DateTime 创建时间 { get; set; } + public DateTime 鍒涘缓鏃堕棿 { get; set; } } [Fact] @@ -105,7 +125,7 @@ namespace FreeSql.Tests.Odbc.PostgreSQL public void AddField() { var sql = g.pgsql.CodeFirst.GetComparisonDDLStatements(); - Assert.True(string.IsNullOrEmpty(sql)); //测试运行两次后 + Assert.True(string.IsNullOrEmpty(sql)); //娴嬭瘯杩愯涓ゆ鍚 g.pgsql.Select(); var id = g.pgsql.Insert().AppendData(new TopicAddField { }).ExecuteIdentity(); } @@ -160,7 +180,7 @@ namespace FreeSql.Tests.Odbc.PostgreSQL testFieldBoolNullable = true, testFieldByte = byte.MaxValue, testFieldByteNullable = byte.MinValue, - testFieldBytes = Encoding.UTF8.GetBytes("我是中国人"), + testFieldBytes = Encoding.UTF8.GetBytes("鎴戞槸涓浗浜"), testFieldDateTime = DateTime.Now, testFieldDateTimeNullable = DateTime.Now.AddDays(-1), testFieldDecimal = 999.99M, @@ -183,7 +203,7 @@ namespace FreeSql.Tests.Odbc.PostgreSQL testFieldSByteNullable = sbyte.MinValue, testFieldShort = short.MaxValue, testFieldShortNullable = short.MinValue, - testFieldString = "我是中国人string'\\?!@#$%^&*()_+{}}{~?><<>", + testFieldString = "鎴戞槸涓浗浜簊tring'\\?!@#$%^&*()_+{}}{~?><<>", testFieldChar = 'X', testFieldTimeSpan = TimeSpan.FromDays(1), testFieldTimeSpanNullable = TimeSpan.FromSeconds(90), diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/SqlServer/SqlServerCodeFirstTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/SqlServer/SqlServerCodeFirstTest.cs index 9bb412ea..37cba46f 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/SqlServer/SqlServerCodeFirstTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/SqlServer/SqlServerCodeFirstTest.cs @@ -1,4 +1,4 @@ -using FreeSql.DataAnnotations; +锘縰sing FreeSql.DataAnnotations; using Newtonsoft.Json; using System; using System.Collections.Generic; @@ -12,6 +12,26 @@ namespace FreeSql.Tests.Odbc.SqlServer [Collection("SqlServerCollection")] public class SqlServerCodeFirstTest { + [Fact] + public void Test_0String() + { + var fsql = g.sqlserver; + fsql.Delete().Where("1=1").ExecuteAffrows(); + + Assert.Equal(1, fsql.Insert(new test_0string01 { name = @"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000" }).ExecuteAffrows()); + Assert.Equal(1, fsql.Insert(new test_0string01 { name = @"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000" }).NoneParameter().ExecuteAffrows()); + + var list = fsql.Select().ToList(); + Assert.Equal(2, list.Count); + Assert.Equal(@"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000", list[0].name); + Assert.Equal(@"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000", list[1].name); + } + class test_0string01 + { + public Guid id { get; set; } + public string name { get; set; } + } + [Fact] public void StringLength() { @@ -29,7 +49,7 @@ namespace FreeSql.Tests.Odbc.SqlServer } [Fact] - public void 表名中有点() + public void 琛ㄥ悕涓湁鐐() { var item = new tbdot01 { name = "insert" }; g.sqlserver.Insert(item).ExecuteAffrows(); @@ -50,66 +70,66 @@ namespace FreeSql.Tests.Odbc.SqlServer Assert.Null(find); } /// - /// 表中带点 + /// 琛ㄤ腑甯︾偣 /// [Table(Name = "[freesql.T].[dbo].[sys.tbdot01]")] class tbdot01 { /// - /// 主键 + /// 涓婚敭 /// public Guid id { get; set; } public string name { get; set; } } [Fact] - public void 中文表_字段() + public void 涓枃琛╛瀛楁() { - var sql = g.sqlserver.CodeFirst.GetComparisonDDLStatements<测试中文表>(); - g.sqlserver.CodeFirst.SyncStructure<测试中文表>(); + var sql = g.sqlserver.CodeFirst.GetComparisonDDLStatements<娴嬭瘯涓枃琛>(); + g.sqlserver.CodeFirst.SyncStructure<娴嬭瘯涓枃琛>(); - var item = new 测试中文表 + var item = new 娴嬭瘯涓枃琛 { - 标题 = "测试标题", - 创建时间 = DateTime.Now + 鏍囬 = "娴嬭瘯鏍囬", + 鍒涘缓鏃堕棿 = DateTime.Now }; - Assert.Equal(1, g.sqlserver.Insert<测试中文表>().AppendData(item).ExecuteAffrows()); - Assert.NotEqual(Guid.Empty, item.编号); - var item2 = g.sqlserver.Select<测试中文表>().Where(a => a.编号 == item.编号).First(); + Assert.Equal(1, g.sqlserver.Insert<娴嬭瘯涓枃琛>().AppendData(item).ExecuteAffrows()); + Assert.NotEqual(Guid.Empty, item.缂栧彿); + var item2 = g.sqlserver.Select<娴嬭瘯涓枃琛>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); - item.标题 = "测试标题更新"; - Assert.Equal(1, g.sqlserver.Update<测试中文表>().SetSource(item).ExecuteAffrows()); - item2 = g.sqlserver.Select<测试中文表>().Where(a => a.编号 == item.编号).First(); + item.鏍囬 = "娴嬭瘯鏍囬鏇存柊"; + Assert.Equal(1, g.sqlserver.Update<娴嬭瘯涓枃琛>().SetSource(item).ExecuteAffrows()); + item2 = g.sqlserver.Select<娴嬭瘯涓枃琛>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); - item.标题 = "测试标题更新_repo"; - var repo = g.sqlserver.GetRepository<测试中文表>(); + item.鏍囬 = "娴嬭瘯鏍囬鏇存柊_repo"; + var repo = g.sqlserver.GetRepository<娴嬭瘯涓枃琛>(); Assert.Equal(1, repo.Update(item)); - item2 = g.sqlserver.Select<测试中文表>().Where(a => a.编号 == item.编号).First(); + item2 = g.sqlserver.Select<娴嬭瘯涓枃琛>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); - item.标题 = "测试标题更新_repo22"; + item.鏍囬 = "娴嬭瘯鏍囬鏇存柊_repo22"; Assert.Equal(1, repo.Update(item)); - item2 = g.sqlserver.Select<测试中文表>().Where(a => a.编号 == item.编号).First(); + item2 = g.sqlserver.Select<娴嬭瘯涓枃琛>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); } - class 测试中文表 + class 娴嬭瘯涓枃琛 { [Column(IsPrimary = true)] - public Guid 编号 { get; set; } + public Guid 缂栧彿 { get; set; } - public string 标题 { get; set; } + public string 鏍囬 { get; set; } - public DateTime 创建时间 { get; set; } + public DateTime 鍒涘缓鏃堕棿 { get; set; } } @@ -167,7 +187,7 @@ namespace FreeSql.Tests.Odbc.SqlServer public void GetComparisonDDLStatements() { var sql = g.sqlserver.CodeFirst.GetComparisonDDLStatements(); - Assert.True(string.IsNullOrEmpty(sql)); //测试运行两次后 + Assert.True(string.IsNullOrEmpty(sql)); //娴嬭瘯杩愯涓ゆ鍚 sql = g.sqlserver.CodeFirst.GetComparisonDDLStatements(); } @@ -188,7 +208,7 @@ namespace FreeSql.Tests.Odbc.SqlServer testFieldBoolNullable = true, testFieldByte = byte.MaxValue, testFieldByteNullable = byte.MinValue, - testFieldBytes = Encoding.UTF8.GetBytes("我是中国人"), + testFieldBytes = Encoding.UTF8.GetBytes("鎴戞槸涓浗浜"), testFieldDateTime = DateTime.Now, testFieldDateTimeNullable = DateTime.Now.AddHours(1), testFieldDateTimeNullableOffset = new DateTimeOffset(DateTime.Now.AddHours(1), TimeSpan.FromHours(8)), @@ -212,7 +232,7 @@ namespace FreeSql.Tests.Odbc.SqlServer testFieldSByteNullable = sbyte.MinValue, testFieldShort = short.MaxValue, testFieldShortNullable = short.MinValue, - testFieldString = "我是中国人string'\\?!@#$%^&*()_+{}}{~?><<>", + testFieldString = "鎴戞槸涓浗浜簊tring'\\?!@#$%^&*()_+{}}{~?><<>", testFieldChar = 'X', testFieldTimeSpan = TimeSpan.FromSeconds(999), testFieldTimeSpanNullable = TimeSpan.FromSeconds(30), diff --git a/FreeSql.Tests/FreeSql.Tests/Dameng/DamengCodeFirstTest.cs b/FreeSql.Tests/FreeSql.Tests/Dameng/DamengCodeFirstTest.cs index 50c59a57..7bf9b2ac 100644 --- a/FreeSql.Tests/FreeSql.Tests/Dameng/DamengCodeFirstTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/Dameng/DamengCodeFirstTest.cs @@ -1,4 +1,4 @@ -using FreeSql.DataAnnotations; +锘縰sing FreeSql.DataAnnotations; using Newtonsoft.Json; using System; using System.Collections.Generic; @@ -12,12 +12,32 @@ namespace FreeSql.Tests.Dameng { public class DamengCodeFirstTest { + [Fact] + public void Test_0String() + { + var fsql = g.dameng; + fsql.Delete().Where("1=1").ExecuteAffrows(); + + Assert.Equal(1, fsql.Insert(new test_0string01 { name = @"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000" }).ExecuteAffrows()); + Assert.Equal(1, fsql.Insert(new test_0string01 { name = @"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000" }).NoneParameter().ExecuteAffrows()); + + var list = fsql.Select().ToList(); + Assert.Equal(2, list.Count); + Assert.Equal(@"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000", list[0].name); + Assert.Equal(@"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000", list[1].name); + } + class test_0string01 + { + public Guid id { get; set; } + public string name { get; set; } + } + [Fact] public void InsertUpdateParameter() { var fsql = g.dameng; fsql.CodeFirst.SyncStructure(); - var item = new ts_iupstr { id = Guid.NewGuid(), title = string.Join(",", Enumerable.Range(0, 2000).Select(a => "我是中国人")) }; + var item = new ts_iupstr { id = Guid.NewGuid(), title = string.Join(",", Enumerable.Range(0, 2000).Select(a => "鎴戞槸涓浗浜")) }; Assert.Equal(1, fsql.Insert(item).ExecuteAffrows()); var find = fsql.Select().Where(a => a.id == item.id).First(); Assert.NotNull(find); @@ -54,7 +74,7 @@ WHERE (a.""ID"" = 1) AND ROWNUM < 2"; var creatorId1 = dr.GetString(1); var id = dr.GetValue(0); - //var creatorId = dr.GetValue(1); //报错 + //var creatorId = dr.GetValue(1); //鎶ラ敊 } } } @@ -79,7 +99,7 @@ WHERE (a.""ID"" = 1) AND ROWNUM < 2"; [Fact] public void Text_StringLength_1() { - var str1 = string.Join(",", Enumerable.Range(0, 10000).Select(a => "我是中国人")); + var str1 = string.Join(",", Enumerable.Range(0, 10000).Select(a => "鎴戞槸涓浗浜")); var item1 = new TS_TEXT02 { Data = str1 }; Assert.Equal(1, g.dameng.Insert(item1).ExecuteAffrows()); @@ -101,7 +121,7 @@ WHERE (a.""ID"" = 1) AND ROWNUM < 2"; [Fact] public void Text() { - var str1 = string.Join(",", Enumerable.Range(0, 10000).Select(a => "我是中国人")); + var str1 = string.Join(",", Enumerable.Range(0, 10000).Select(a => "鎴戞槸涓浗浜")); var item1 = new TS_TEXT01 { Data = str1 }; Assert.Equal(1, g.dameng.Insert(item1).ExecuteAffrows()); @@ -122,7 +142,7 @@ WHERE (a.""ID"" = 1) AND ROWNUM < 2"; [Fact] public void Blob() { - var str1 = string.Join(",", Enumerable.Range(0, 10000).Select(a => "我是中国人")); + var str1 = string.Join(",", Enumerable.Range(0, 10000).Select(a => "鎴戞槸涓浗浜")); var data1 = Encoding.UTF8.GetBytes(str1); var item1 = new TS_BLB01 { Data = data1 }; @@ -137,7 +157,7 @@ WHERE (a.""ID"" = 1) AND ROWNUM < 2"; //NoneParameter item1 = new TS_BLB01 { Data = data1 }; Assert.Throws(() => g.dameng.Insert(item1).NoneParameter().ExecuteAffrows()); - //DmException: 字符串截断 + //DmException: 瀛楃涓叉埅鏂 } class TS_BLB01 { @@ -162,106 +182,106 @@ WHERE (a.""ID"" = 1) AND ROWNUM < 2"; } [Fact] - public void 数字表_字段() + public void 鏁板瓧琛╛瀛楁() { - var sql = g.dameng.CodeFirst.GetComparisonDDLStatements<测试数字表>(); - g.dameng.CodeFirst.SyncStructure<测试数字表>(); + var sql = g.dameng.CodeFirst.GetComparisonDDLStatements<娴嬭瘯鏁板瓧琛>(); + g.dameng.CodeFirst.SyncStructure<娴嬭瘯鏁板瓧琛>(); - var item = new 测试数字表 + var item = new 娴嬭瘯鏁板瓧琛 { - 标题 = "测试标题", - 创建时间 = DateTime.Now + 鏍囬 = "娴嬭瘯鏍囬", + 鍒涘缓鏃堕棿 = DateTime.Now }; - Assert.Equal(1, g.dameng.Insert<测试数字表>().AppendData(item).ExecuteAffrows()); - Assert.NotEqual(Guid.Empty, item.编号); - var item2 = g.dameng.Select<测试数字表>().Where(a => a.编号 == item.编号).First(); + Assert.Equal(1, g.dameng.Insert<娴嬭瘯鏁板瓧琛>().AppendData(item).ExecuteAffrows()); + Assert.NotEqual(Guid.Empty, item.缂栧彿); + var item2 = g.dameng.Select<娴嬭瘯鏁板瓧琛>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); - item.标题 = "测试标题更新"; - Assert.Equal(1, g.dameng.Update<测试数字表>().SetSource(item).ExecuteAffrows()); - item2 = g.dameng.Select<测试数字表>().Where(a => a.编号 == item.编号).First(); + item.鏍囬 = "娴嬭瘯鏍囬鏇存柊"; + Assert.Equal(1, g.dameng.Update<娴嬭瘯鏁板瓧琛>().SetSource(item).ExecuteAffrows()); + item2 = g.dameng.Select<娴嬭瘯鏁板瓧琛>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); - item.标题 = "测试标题更新_repo"; - var repo = g.dameng.GetRepository<测试数字表>(); + item.鏍囬 = "娴嬭瘯鏍囬鏇存柊_repo"; + var repo = g.dameng.GetRepository<娴嬭瘯鏁板瓧琛>(); Assert.Equal(1, repo.Update(item)); - item2 = g.dameng.Select<测试数字表>().Where(a => a.编号 == item.编号).First(); + item2 = g.dameng.Select<娴嬭瘯鏁板瓧琛>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); - item.标题 = "测试标题更新_repo22"; + item.鏍囬 = "娴嬭瘯鏍囬鏇存柊_repo22"; Assert.Equal(1, repo.Update(item)); - item2 = g.dameng.Select<测试数字表>().Where(a => a.编号 == item.编号).First(); + item2 = g.dameng.Select<娴嬭瘯鏁板瓧琛>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); } - [Table(Name = "123测试数字表")] - class 测试数字表 + [Table(Name = "123娴嬭瘯鏁板瓧琛")] + class 娴嬭瘯鏁板瓧琛 { - [Column(IsPrimary = true, Name = "123编号")] - public Guid 编号 { get; set; } + [Column(IsPrimary = true, Name = "123缂栧彿")] + public Guid 缂栧彿 { get; set; } - [Column(Name = "123标题")] - public string 标题 { get; set; } + [Column(Name = "123鏍囬")] + public string 鏍囬 { get; set; } - [Column(Name = "123创建时间")] - public DateTime 创建时间 { get; set; } + [Column(Name = "123鍒涘缓鏃堕棿")] + public DateTime 鍒涘缓鏃堕棿 { get; set; } } [Fact] - public void 中文表_字段() + public void 涓枃琛╛瀛楁() { - var sql = g.dameng.CodeFirst.GetComparisonDDLStatements<测试中文表>(); - g.dameng.CodeFirst.SyncStructure<测试中文表>(); + var sql = g.dameng.CodeFirst.GetComparisonDDLStatements<娴嬭瘯涓枃琛>(); + g.dameng.CodeFirst.SyncStructure<娴嬭瘯涓枃琛>(); - var item = new 测试中文表 + var item = new 娴嬭瘯涓枃琛 { - 标题 = "测试标题", - 创建时间 = DateTime.Now + 鏍囬 = "娴嬭瘯鏍囬", + 鍒涘缓鏃堕棿 = DateTime.Now }; - Assert.Equal(1, g.dameng.Insert<测试中文表>().AppendData(item).ExecuteAffrows()); - Assert.NotEqual(Guid.Empty, item.编号); - var item2 = g.dameng.Select<测试中文表>().Where(a => a.编号 == item.编号).First(); + Assert.Equal(1, g.dameng.Insert<娴嬭瘯涓枃琛>().AppendData(item).ExecuteAffrows()); + Assert.NotEqual(Guid.Empty, item.缂栧彿); + var item2 = g.dameng.Select<娴嬭瘯涓枃琛>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); - item.标题 = "测试标题更新"; - Assert.Equal(1, g.dameng.Update<测试中文表>().SetSource(item).ExecuteAffrows()); - item2 = g.dameng.Select<测试中文表>().Where(a => a.编号 == item.编号).First(); + item.鏍囬 = "娴嬭瘯鏍囬鏇存柊"; + Assert.Equal(1, g.dameng.Update<娴嬭瘯涓枃琛>().SetSource(item).ExecuteAffrows()); + item2 = g.dameng.Select<娴嬭瘯涓枃琛>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); - item.标题 = "测试标题更新_repo"; - var repo = g.dameng.GetRepository<测试中文表>(); + item.鏍囬 = "娴嬭瘯鏍囬鏇存柊_repo"; + var repo = g.dameng.GetRepository<娴嬭瘯涓枃琛>(); Assert.Equal(1, repo.Update(item)); - item2 = g.dameng.Select<测试中文表>().Where(a => a.编号 == item.编号).First(); + item2 = g.dameng.Select<娴嬭瘯涓枃琛>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); - item.标题 = "测试标题更新_repo22"; + item.鏍囬 = "娴嬭瘯鏍囬鏇存柊_repo22"; Assert.Equal(1, repo.Update(item)); - item2 = g.dameng.Select<测试中文表>().Where(a => a.编号 == item.编号).First(); + item2 = g.dameng.Select<娴嬭瘯涓枃琛>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); } - class 测试中文表 + class 娴嬭瘯涓枃琛 { [Column(IsPrimary = true)] - public Guid 编号 { get; set; } + public Guid 缂栧彿 { get; set; } - public string 标题 { get; set; } + public string 鏍囬 { get; set; } - public DateTime 创建时间 { get; set; } + public DateTime 鍒涘缓鏃堕棿 { get; set; } } [Fact] @@ -313,7 +333,7 @@ WHERE (a.""ID"" = 1) AND ROWNUM < 2"; public void GetComparisonDDLStatements() { var sql = g.dameng.CodeFirst.GetComparisonDDLStatements(); - Assert.True(string.IsNullOrEmpty(sql)); //测试运行两次后 + Assert.True(string.IsNullOrEmpty(sql)); //娴嬭瘯杩愯涓ゆ鍚 //sql = g.dameng.CodeFirst.GetComparisonDDLStatements(); } @@ -330,7 +350,7 @@ WHERE (a.""ID"" = 1) AND ROWNUM < 2"; BoolNullable = true, Byte = 255, ByteNullable = 127, - Bytes = Encoding.UTF8.GetBytes("我是中国人"), + Bytes = Encoding.UTF8.GetBytes("鎴戞槸涓浗浜"), DateTime = DateTime.Now, DateTimeNullable = DateTime.Now.AddHours(-1), Decimal = 99.99M, @@ -351,7 +371,7 @@ WHERE (a.""ID"" = 1) AND ROWNUM < 2"; SByteNullable = 99, Short = short.MaxValue, ShortNullable = short.MinValue, - String = "我是中国人string'\\?!@#$%^&*()_+{}}{~?><<>", + String = "鎴戞槸涓浗浜簊tring'\\?!@#$%^&*()_+{}}{~?><<>", Char = 'X', TimeSpan = TimeSpan.FromSeconds(999), TimeSpanNullable = TimeSpan.FromSeconds(60), diff --git a/FreeSql.Tests/FreeSql.Tests/Firebird/FirebirdCodeFirstTest.cs b/FreeSql.Tests/FreeSql.Tests/Firebird/FirebirdCodeFirstTest.cs index 9a6165db..66b6a9b2 100644 --- a/FreeSql.Tests/FreeSql.Tests/Firebird/FirebirdCodeFirstTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/Firebird/FirebirdCodeFirstTest.cs @@ -1,4 +1,4 @@ -using FreeSql.DataAnnotations; +锘縰sing FreeSql.DataAnnotations; using Newtonsoft.Json; using System; using System.Collections.Generic; @@ -10,12 +10,32 @@ namespace FreeSql.Tests.Firebird { public class FirebirdCodeFirstTest { + [Fact] + public void Test_0String() + { + var fsql = g.firebird; + fsql.Delete().Where("1=1").ExecuteAffrows(); + + Assert.Equal(1, fsql.Insert(new test_0string01 { name = @"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000" }).ExecuteAffrows()); + Assert.Equal(1, fsql.Insert(new test_0string01 { name = @"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000" }).NoneParameter().ExecuteAffrows()); + + var list = fsql.Select().ToList(); + Assert.Equal(2, list.Count); + Assert.Equal(@"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000", list[0].name); + Assert.Equal(@"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000", list[1].name); + } + class test_0string01 + { + public Guid id { get; set; } + public string name { get; set; } + } + [Fact] public void InsertUpdateParameter() { var fsql = g.firebird; fsql.CodeFirst.SyncStructure(); - var item = new ts_iupstr { id = Guid.NewGuid(), title = string.Join(",", Enumerable.Range(0, 2000).Select(a => "我是中国人")) }; + var item = new ts_iupstr { id = Guid.NewGuid(), title = string.Join(",", Enumerable.Range(0, 2000).Select(a => "鎴戞槸涓浗浜")) }; Assert.Equal(1, fsql.Insert(item).ExecuteAffrows()); var find = fsql.Select().Where(a => a.id == item.id).First(); Assert.NotNull(find); @@ -38,7 +58,7 @@ namespace FreeSql.Tests.Firebird [Fact] public void Text_StringLength_1() { - var str1 = string.Join(",", Enumerable.Range(0, 10000).Select(a => "我是中国人")); + var str1 = string.Join(",", Enumerable.Range(0, 10000).Select(a => "鎴戞槸涓浗浜")); var item1 = new TS_TEXT02 { Data = str1 }; Assert.Equal(1, g.firebird.Insert(item1).ExecuteAffrows()); @@ -66,7 +86,7 @@ namespace FreeSql.Tests.Firebird [Fact] public void Blob() { - var str1 = string.Join(",", Enumerable.Range(0, 10000).Select(a => "我是中国人")); + var str1 = string.Join(",", Enumerable.Range(0, 10000).Select(a => "鎴戞槸涓浗浜")); var data1 = Encoding.UTF8.GetBytes(str1); var item1 = new TS_BLB01 { Data = data1 }; @@ -111,111 +131,111 @@ namespace FreeSql.Tests.Firebird } [Fact] - public void 数字表_字段() + public void 鏁板瓧琛╛瀛楁() { - var sql = g.firebird.CodeFirst.GetComparisonDDLStatements<测试数字表>(); - g.firebird.CodeFirst.SyncStructure<测试数字表>(); + var sql = g.firebird.CodeFirst.GetComparisonDDLStatements<娴嬭瘯鏁板瓧琛>(); + g.firebird.CodeFirst.SyncStructure<娴嬭瘯鏁板瓧琛>(); - var item = new 测试数字表 + var item = new 娴嬭瘯鏁板瓧琛 { - 标题 = "测试标题", - 创建时间 = DateTime.Now + 鏍囬 = "娴嬭瘯鏍囬", + 鍒涘缓鏃堕棿 = DateTime.Now }; - Assert.Equal(1, g.firebird.Insert<测试数字表>().AppendData(item).ExecuteAffrows()); - Assert.NotEqual(Guid.Empty, item.编号); - var item2 = g.firebird.Select<测试数字表>().Where(a => a.编号 == item.编号).First(); + Assert.Equal(1, g.firebird.Insert<娴嬭瘯鏁板瓧琛>().AppendData(item).ExecuteAffrows()); + Assert.NotEqual(Guid.Empty, item.缂栧彿); + var item2 = g.firebird.Select<娴嬭瘯鏁板瓧琛>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); - item.标题 = "测试标题更新"; - Assert.Equal(1, g.firebird.Update<测试数字表>().SetSource(item).ExecuteAffrows()); - item2 = g.firebird.Select<测试数字表>().Where(a => a.编号 == item.编号).First(); + item.鏍囬 = "娴嬭瘯鏍囬鏇存柊"; + Assert.Equal(1, g.firebird.Update<娴嬭瘯鏁板瓧琛>().SetSource(item).ExecuteAffrows()); + item2 = g.firebird.Select<娴嬭瘯鏁板瓧琛>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); - item.标题 = "测试标题更新_repo"; - var repo = g.firebird.GetRepository<测试数字表>(); + item.鏍囬 = "娴嬭瘯鏍囬鏇存柊_repo"; + var repo = g.firebird.GetRepository<娴嬭瘯鏁板瓧琛>(); Assert.Equal(1, repo.Update(item)); - item2 = g.firebird.Select<测试数字表>().Where(a => a.编号 == item.编号).First(); + item2 = g.firebird.Select<娴嬭瘯鏁板瓧琛>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); - item.标题 = "测试标题更新_repo22"; + item.鏍囬 = "娴嬭瘯鏍囬鏇存柊_repo22"; Assert.Equal(1, repo.Update(item)); - item2 = g.firebird.Select<测试数字表>().Where(a => a.编号 == item.编号).First(); + item2 = g.firebird.Select<娴嬭瘯鏁板瓧琛>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); } [Table(Name = "123tb")] [OraclePrimaryKeyName("pk1_123tb")] - class 测试数字表 + class 娴嬭瘯鏁板瓧琛 { [Column(IsPrimary = true, Name = "123id")] - public Guid 编号 { get; set; } + public Guid 缂栧彿 { get; set; } [Column(Name = "123title")] - public string 标题 { get; set; } + public string 鏍囬 { get; set; } [Column(Name = "123time")] - public DateTime 创建时间 { get; set; } + public DateTime 鍒涘缓鏃堕棿 { get; set; } } [Fact] - public void 中文表_字段() + public void 涓枃琛╛瀛楁() { - var sql = g.firebird.CodeFirst.GetComparisonDDLStatements<测试中文表>(); - g.firebird.CodeFirst.SyncStructure<测试中文表>(); + var sql = g.firebird.CodeFirst.GetComparisonDDLStatements<娴嬭瘯涓枃琛>(); + g.firebird.CodeFirst.SyncStructure<娴嬭瘯涓枃琛>(); - var item = new 测试中文表 + var item = new 娴嬭瘯涓枃琛 { - 标题 = "测试标题", - 创建时间 = DateTime.Now + 鏍囬 = "娴嬭瘯鏍囬", + 鍒涘缓鏃堕棿 = DateTime.Now }; - Assert.Equal(1, g.firebird.Insert<测试中文表>().AppendData(item).ExecuteAffrows()); - Assert.NotEqual(Guid.Empty, item.编号); - var item2 = g.firebird.Select<测试中文表>().Where(a => a.编号 == item.编号).First(); + Assert.Equal(1, g.firebird.Insert<娴嬭瘯涓枃琛>().AppendData(item).ExecuteAffrows()); + Assert.NotEqual(Guid.Empty, item.缂栧彿); + var item2 = g.firebird.Select<娴嬭瘯涓枃琛>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); - item.标题 = "测试标题更新"; - Assert.Equal(1, g.firebird.Update<测试中文表>().SetSource(item).ExecuteAffrows()); - item2 = g.firebird.Select<测试中文表>().Where(a => a.编号 == item.编号).First(); + item.鏍囬 = "娴嬭瘯鏍囬鏇存柊"; + Assert.Equal(1, g.firebird.Update<娴嬭瘯涓枃琛>().SetSource(item).ExecuteAffrows()); + item2 = g.firebird.Select<娴嬭瘯涓枃琛>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); - item.标题 = "测试标题更新_repo"; - var repo = g.firebird.GetRepository<测试中文表>(); + item.鏍囬 = "娴嬭瘯鏍囬鏇存柊_repo"; + var repo = g.firebird.GetRepository<娴嬭瘯涓枃琛>(); Assert.Equal(1, repo.Update(item)); - item2 = g.firebird.Select<测试中文表>().Where(a => a.编号 == item.编号).First(); + item2 = g.firebird.Select<娴嬭瘯涓枃琛>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); - item.标题 = "测试标题更新_repo22"; + item.鏍囬 = "娴嬭瘯鏍囬鏇存柊_repo22"; Assert.Equal(1, repo.Update(item)); - item2 = g.firebird.Select<测试中文表>().Where(a => a.编号 == item.编号).First(); + item2 = g.firebird.Select<娴嬭瘯涓枃琛>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); } - class 测试中文表 + class 娴嬭瘯涓枃琛 { [Column(IsPrimary = true)] - public Guid 编号 { get; set; } + public Guid 缂栧彿 { get; set; } - public string 标题 { get; set; } + public string 鏍囬 { get; set; } [Column(ServerTime = DateTimeKind.Local, CanUpdate = false)] - public DateTime 创建时间 { get; set; } + public DateTime 鍒涘缓鏃堕棿 { get; set; } [Column(ServerTime = DateTimeKind.Local)] - public DateTime 更新时间 { get; set; } + public DateTime 鏇存柊鏃堕棿 { get; set; } } [Fact] @@ -231,7 +251,7 @@ namespace FreeSql.Tests.Firebird class AddUniquesInfo { /// - /// 编号 + /// 缂栧彿 /// public Guid id { get; set; } public string phone { get; set; } @@ -288,7 +308,7 @@ namespace FreeSql.Tests.Firebird BoolNullable = true, Byte = 255, ByteNullable = 127, - Bytes = Encoding.UTF8.GetBytes("我是中国人"), + Bytes = Encoding.UTF8.GetBytes("鎴戞槸涓浗浜"), DateTime = DateTime.Now, DateTimeNullable = DateTime.Now.AddHours(-1), Decimal = 99.99M, @@ -309,7 +329,7 @@ namespace FreeSql.Tests.Firebird SByteNullable = 99, Short = short.MaxValue, ShortNullable = short.MinValue, - String = "我是中国人string'\\?!@#$%^&*()_+{}}{~?><<>", + String = "鎴戞槸涓浗浜簊tring'\\?!@#$%^&*()_+{}}{~?><<>", TimeSpan = TimeSpan.FromSeconds(999), TimeSpanNullable = TimeSpan.FromSeconds(60), UInt = uint.MaxValue, diff --git a/FreeSql.Tests/FreeSql.Tests/MsAccess/MsAccessCodeFirstTest.cs b/FreeSql.Tests/FreeSql.Tests/MsAccess/MsAccessCodeFirstTest.cs index 4956d9d1..e692fcbe 100644 --- a/FreeSql.Tests/FreeSql.Tests/MsAccess/MsAccessCodeFirstTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/MsAccess/MsAccessCodeFirstTest.cs @@ -1,4 +1,4 @@ -using FreeSql.DataAnnotations; +锘縰sing FreeSql.DataAnnotations; using Newtonsoft.Json; using System; using System.Collections.Generic; @@ -10,12 +10,32 @@ namespace FreeSql.Tests.MsAccess { public class MsAccessCodeFirstTest { + [Fact] + public void Test_0String() + { + var fsql = g.msaccess; + fsql.Delete().Where("1=1").ExecuteAffrows(); + + Assert.Equal(1, fsql.Insert(new test_0string01 { name = @"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000" }).ExecuteAffrows()); + Assert.Equal(1, fsql.Insert(new test_0string01 { name = @"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000" }).NoneParameter().ExecuteAffrows()); + + var list = fsql.Select().ToList(); + Assert.Equal(2, list.Count); + Assert.Equal(@"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000", list[0].name); + Assert.Equal(@"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000", list[1].name); + } + class test_0string01 + { + public Guid id { get; set; } + public string name { get; set; } + } + [Fact] public void InsertUpdateParameter() { var fsql = g.msaccess; fsql.CodeFirst.SyncStructure(); - var item = new ts_iupstr { id = Guid.NewGuid(), title = string.Join(",", Enumerable.Range(0, 2000).Select(a => "我是中国人")) }; + var item = new ts_iupstr { id = Guid.NewGuid(), title = string.Join(",", Enumerable.Range(0, 2000).Select(a => "鎴戞槸涓浗浜")) }; Assert.Equal(1, fsql.Insert(item).ExecuteAffrows()); var find = fsql.Select().Where(a => a.id == item.id).First(); Assert.NotNull(find); @@ -52,57 +72,57 @@ namespace FreeSql.Tests.MsAccess } [Fact] - public void 中文表_字段() + public void 涓枃琛╛瀛楁() { - var sql = g.msaccess.CodeFirst.GetComparisonDDLStatements<测试中文表>(); - g.msaccess.CodeFirst.SyncStructure<测试中文表>(); + var sql = g.msaccess.CodeFirst.GetComparisonDDLStatements<娴嬭瘯涓枃琛>(); + g.msaccess.CodeFirst.SyncStructure<娴嬭瘯涓枃琛>(); - var item = new 测试中文表 + var item = new 娴嬭瘯涓枃琛 { - 标题 = "测试标题", - 创建时间 = DateTime.Now + 鏍囬 = "娴嬭瘯鏍囬", + 鍒涘缓鏃堕棿 = DateTime.Now }; - Assert.Equal(1, g.msaccess.Insert<测试中文表>().AppendData(item).ExecuteAffrows()); - Assert.NotEqual(Guid.Empty, item.编号); - var item2 = g.msaccess.Select<测试中文表>().Where(a => a.编号 == item.编号).First(); + Assert.Equal(1, g.msaccess.Insert<娴嬭瘯涓枃琛>().AppendData(item).ExecuteAffrows()); + Assert.NotEqual(Guid.Empty, item.缂栧彿); + var item2 = g.msaccess.Select<娴嬭瘯涓枃琛>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); - item.标题 = "测试标题更新"; - Assert.Equal(1, g.msaccess.Update<测试中文表>().SetSource(item).ExecuteAffrows()); - item2 = g.msaccess.Select<测试中文表>().Where(a => a.编号 == item.编号).First(); + item.鏍囬 = "娴嬭瘯鏍囬鏇存柊"; + Assert.Equal(1, g.msaccess.Update<娴嬭瘯涓枃琛>().SetSource(item).ExecuteAffrows()); + item2 = g.msaccess.Select<娴嬭瘯涓枃琛>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); - item.标题 = "测试标题更新_repo"; - var repo = g.msaccess.GetRepository<测试中文表>(); + item.鏍囬 = "娴嬭瘯鏍囬鏇存柊_repo"; + var repo = g.msaccess.GetRepository<娴嬭瘯涓枃琛>(); Assert.Equal(1, repo.Update(item)); - item2 = g.msaccess.Select<测试中文表>().Where(a => a.编号 == item.编号).First(); + item2 = g.msaccess.Select<娴嬭瘯涓枃琛>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); - item.标题 = "测试标题更新_repo22"; + item.鏍囬 = "娴嬭瘯鏍囬鏇存柊_repo22"; Assert.Equal(1, repo.Update(item)); - item2 = g.msaccess.Select<测试中文表>().Where(a => a.编号 == item.编号).First(); + item2 = g.msaccess.Select<娴嬭瘯涓枃琛>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); } - class 测试中文表 + class 娴嬭瘯涓枃琛 { [Column(IsPrimary = true)] - public Guid 编号 { get; set; } + public Guid 缂栧彿 { get; set; } - public string 标题 { get; set; } + public string 鏍囬 { get; set; } [Column(ServerTime = DateTimeKind.Local, CanUpdate = false)] - public DateTime 创建时间 { get; set; } + public DateTime 鍒涘缓鏃堕棿 { get; set; } [Column(ServerTime = DateTimeKind.Local)] - public DateTime 更新时间 { get; set; } + public DateTime 鏇存柊鏃堕棿 { get; set; } } [Fact] @@ -148,29 +168,29 @@ namespace FreeSql.Tests.MsAccess public void AddField() { - //秀一波 FreeSql.Repository 扩展包,dotnet add package FreeSql.Repository + //绉涓娉 FreeSql.Repository 鎵╁睍鍖咃紝dotnet add package FreeSql.Repository var topicRepository = g.msaccess.GetGuidRepository(); var commentRepository = g.msaccess.GetGuidRepository(); - //添加测试文章 + //娣诲姞娴嬭瘯鏂囩珷 var topic = topicRepository.Insert(new Topic { - Title = "文章标题1", - Content = "文章内容1", + Title = "鏂囩珷鏍囬1", + Content = "鏂囩珷鍐呭1", CreateTime = DateTime.Now }); - //添加10条测试评论 + //娣诲姞10鏉℃祴璇曡瘎璁 var comments = Enumerable.Range(0, 10).Select(a => new Comment { TopicId = topic.Id, - Nickname = $"昵称{a}", - Content = $"评论内容{a}", + Nickname = $"鏄电О{a}", + Content = $"璇勮鍐呭{a}", CreateTime = DateTime.Now }).ToArray(); var affrows = commentRepository.Insert(comments); - var find = commentRepository.Select.Where(a => a.Topic.Title == "文章标题1").ToList(); + var find = commentRepository.Select.Where(a => a.Topic.Title == "鏂囩珷鏍囬1").ToList(); @@ -202,7 +222,7 @@ namespace FreeSql.Tests.MsAccess { var sql = g.msaccess.CodeFirst.GetComparisonDDLStatements(); - Assert.True(string.IsNullOrEmpty(sql)); //测试运行两次后 + Assert.True(string.IsNullOrEmpty(sql)); //娴嬭瘯杩愯涓ゆ鍚 //sql = g.msaccess.CodeFirst.GetComparisonDDLStatements(); } @@ -223,7 +243,7 @@ namespace FreeSql.Tests.MsAccess BoolNullable = true, Byte = 255, ByteNullable = 127, - Bytes = Encoding.UTF8.GetBytes("我是中国人"), + Bytes = Encoding.UTF8.GetBytes("鎴戞槸涓浗浜"), DateTime = DateTime.Now, DateTimeNullable = DateTime.Now.AddHours(-1), Decimal = 99.99M, @@ -244,7 +264,7 @@ namespace FreeSql.Tests.MsAccess SByteNullable = 99, Short = short.MaxValue, ShortNullable = short.MinValue, - String = "我是中国人string'\\?!@#$%^&*()_+{}}{~?><<>", + String = "鎴戞槸涓浗浜簊tring'\\?!@#$%^&*()_+{}}{~?><<>", Char = 'X', TimeSpan = TimeSpan.FromSeconds(999), TimeSpanNullable = TimeSpan.FromSeconds(60), diff --git a/FreeSql.Tests/FreeSql.Tests/MySql/MySqlCodeFirstTest.cs b/FreeSql.Tests/FreeSql.Tests/MySql/MySqlCodeFirstTest.cs index 76e2ed88..054d18c7 100644 --- a/FreeSql.Tests/FreeSql.Tests/MySql/MySqlCodeFirstTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/MySql/MySqlCodeFirstTest.cs @@ -1,4 +1,4 @@ -using FreeSql.DataAnnotations; +锘縰sing FreeSql.DataAnnotations; using Newtonsoft.Json; using System; using System.Collections.Generic; @@ -11,6 +11,26 @@ namespace FreeSql.Tests.MySql { public class MySqlCodeFirstTest { + [Fact] + public void Test_0String() + { + var fsql = g.mysql; + fsql.Delete().Where("1=1").ExecuteAffrows(); + + Assert.Equal(1, fsql.Insert(new test_0string01 { name = @"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000" }).ExecuteAffrows()); + Assert.Equal(1, fsql.Insert(new test_0string01 { name = @"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000" }).NoneParameter().ExecuteAffrows()); + + var list = fsql.Select().ToList(); + Assert.Equal(2, list.Count); + Assert.Equal(@"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000", list[0].name); + Assert.Equal(@"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000", list[1].name); + } + class test_0string01 + { + public Guid id { get; set; } + public string name { get; set; } + } + public enum EnumTest009 { A, B, C @@ -36,7 +56,7 @@ namespace FreeSql.Tests.MySql public void TestEnumToSet009() { var fsql = g.mysql; - //插入 + //鎻掑叆 //insert into TestTable(ColEnumTest,ColSetTest) values('B','A,B'); //insert into TestTable(ColEnumTest,ColSetTest) values(1,3); var sql1 = fsql.Insert().NoneParameter().AppendData(new TestTable009 @@ -46,7 +66,7 @@ namespace FreeSql.Tests.MySql }).ToSql(); Assert.Equal("INSERT INTO `TestTable009`(`ColEnumTest`, `ColSetTest`) VALUES('B', 'A,B')", sql1); - //查询 扩展方法 contains + //鏌ヨ 鎵╁睍鏂规硶 contains //select * from TestTable t where FIND_IN_SET('A',t.ColSetTest)>0 //select * from TestTable t where t.ColSetTest&1 var sql2 = fsql.Select().Where(i => (i.ColSetTest & SetTest009.A) == SetTest009.A).ToSql(); @@ -59,7 +79,7 @@ namespace FreeSql.Tests.MySql { var fsql = g.mysql; fsql.CodeFirst.SyncStructure(); - var item = new ts_iupstr { id = Guid.NewGuid(), title = string.Join(",", Enumerable.Range(0, 2000).Select(a => "我是中国人")) }; + var item = new ts_iupstr { id = Guid.NewGuid(), title = string.Join(",", Enumerable.Range(0, 2000).Select(a => "鎴戞槸涓浗浜")) }; Assert.Equal(1, fsql.Insert(item).ExecuteAffrows()); var find = fsql.Select().Where(a => a.id == item.id).First(); Assert.NotNull(find); @@ -248,7 +268,7 @@ namespace FreeSql.Tests.MySql [Fact] public void Text_StringLength_1() { - var str1 = string.Join(",", Enumerable.Range(0, 1000).Select(a => "我是中国人")); + var str1 = string.Join(",", Enumerable.Range(0, 1000).Select(a => "鎴戞槸涓浗浜")); var item1 = new TS_TEXT02 { Data = str1 }; Assert.Equal(1, g.mysql.Insert(item1).ExecuteAffrows()); @@ -270,7 +290,7 @@ namespace FreeSql.Tests.MySql [Fact] public void Text() { - var str1 = string.Join(",", Enumerable.Range(0, 1000).Select(a => "我是中国人")); + var str1 = string.Join(",", Enumerable.Range(0, 1000).Select(a => "鎴戞槸涓浗浜")); var item1 = new TS_TEXT01 { Data = str1 }; Assert.Equal(1, g.mysql.Insert(item1).ExecuteAffrows()); @@ -292,7 +312,7 @@ namespace FreeSql.Tests.MySql [Fact] public void Text_StringLength_2() { - var str1 = string.Join(",", Enumerable.Range(0, 10000).Select(a => "我是中国人")); + var str1 = string.Join(",", Enumerable.Range(0, 10000).Select(a => "鎴戞槸涓浗浜")); var item1 = new TS_TEXT04 { Data = str1 }; Assert.Equal(1, g.mysql.Insert(item1).ExecuteAffrows()); @@ -314,7 +334,7 @@ namespace FreeSql.Tests.MySql [Fact] public void Text_MaxLength_2() { - var str1 = string.Join(",", Enumerable.Range(0, 10000).Select(a => "我是中国人")); + var str1 = string.Join(",", Enumerable.Range(0, 10000).Select(a => "鎴戞槸涓浗浜")); var item1 = new TS_TEXT041 { Data = str1 }; Assert.Equal(1, g.mysql.Insert(item1).ExecuteAffrows()); @@ -336,7 +356,7 @@ namespace FreeSql.Tests.MySql [Fact] public void LongText() { - var str1 = string.Join(",", Enumerable.Range(0, 10000).Select(a => "我是中国人")); + var str1 = string.Join(",", Enumerable.Range(0, 10000).Select(a => "鎴戞槸涓浗浜")); var item1 = new TS_TEXT03 { Data = str1 }; Assert.Equal(1, g.mysql.Insert(item1).ExecuteAffrows()); @@ -358,7 +378,7 @@ namespace FreeSql.Tests.MySql [Fact] public void Blob() { - var str1 = string.Join(",", Enumerable.Range(0, 10000).Select(a => "我是中国人")); + var str1 = string.Join(",", Enumerable.Range(0, 10000).Select(a => "鎴戞槸涓浗浜")); var data1 = Encoding.UTF8.GetBytes(str1); var item1 = new TS_BLB01 { Data = data1 }; @@ -404,7 +424,7 @@ namespace FreeSql.Tests.MySql } [Fact] - public void 表名中有点() + public void 琛ㄥ悕涓湁鐐() { var item = new tbdot01 { name = "insert" }; g.mysql.Insert(item).ExecuteAffrows(); @@ -432,59 +452,59 @@ namespace FreeSql.Tests.MySql } [Fact] - public void 中文表_字段() + public void 涓枃琛╛瀛楁() { - var sql = g.mysql.CodeFirst.GetComparisonDDLStatements<测试中文表2>(); - g.mysql.CodeFirst.SyncStructure<测试中文表2>(); + var sql = g.mysql.CodeFirst.GetComparisonDDLStatements<娴嬭瘯涓枃琛2>(); + g.mysql.CodeFirst.SyncStructure<娴嬭瘯涓枃琛2>(); - var item = 测试中文表2.Create("测试标题", DateTime.Now); - Assert.Equal(1, g.mysql.Insert<测试中文表2>().AppendData(item).ExecuteAffrows()); - Assert.NotEqual(Guid.Empty, item.编号); - var item2 = g.mysql.Select<测试中文表2>().Where(a => a.编号 == item.编号).First(); + var item = 娴嬭瘯涓枃琛2.Create("娴嬭瘯鏍囬", DateTime.Now); + Assert.Equal(1, g.mysql.Insert<娴嬭瘯涓枃琛2>().AppendData(item).ExecuteAffrows()); + Assert.NotEqual(Guid.Empty, item.缂栧彿); + var item2 = g.mysql.Select<娴嬭瘯涓枃琛2>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); - item.标题22 = "测试标题更新"; - Assert.Equal(1, g.mysql.Update<测试中文表2>().SetSource(item).ExecuteAffrows()); - item2 = g.mysql.Select<测试中文表2>().Where(a => a.编号 == item.编号).First(); + item.鏍囬22 = "娴嬭瘯鏍囬鏇存柊"; + Assert.Equal(1, g.mysql.Update<娴嬭瘯涓枃琛2>().SetSource(item).ExecuteAffrows()); + item2 = g.mysql.Select<娴嬭瘯涓枃琛2>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题22, item2.标题22); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬22, item2.鏍囬22); - item.标题22 = "测试标题更新_repo"; - var repo = g.mysql.GetRepository<测试中文表2>(); + item.鏍囬22 = "娴嬭瘯鏍囬鏇存柊_repo"; + var repo = g.mysql.GetRepository<娴嬭瘯涓枃琛2>(); Assert.Equal(1, repo.Update(item)); - item2 = g.mysql.Select<测试中文表2>().Where(a => a.编号 == item.编号).First(); + item2 = g.mysql.Select<娴嬭瘯涓枃琛2>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题22, item2.标题22); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬22, item2.鏍囬22); - item.标题22 = "测试标题更新_repo22"; + item.鏍囬22 = "娴嬭瘯鏍囬鏇存柊_repo22"; Assert.Equal(1, repo.Update(item)); - item2 = g.mysql.Select<测试中文表2>().Where(a => a.编号 == item.编号).First(); + item2 = g.mysql.Select<娴嬭瘯涓枃琛2>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题22, item2.标题22); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬22, item2.鏍囬22); } - class 测试中文表2 + class 娴嬭瘯涓枃琛2 { [Column(IsPrimary = true)] - public Guid 编号 { get; protected set; } + public Guid 缂栧彿 { get; protected set; } - public string 标题 { get; protected set; } + public string 鏍囬 { get; protected set; } - public string 标题22 { get; set; } + public string 鏍囬22 { get; set; } [Column(ServerTime = DateTimeKind.Local, CanUpdate = false)] - public DateTime 创建时间 { get; protected set; } + public DateTime 鍒涘缓鏃堕棿 { get; protected set; } [Column(ServerTime = DateTimeKind.Local)] - public DateTime 更新时间 { get; set; } + public DateTime 鏇存柊鏃堕棿 { get; set; } - public static 测试中文表2 Create(string title, DateTime ctm) + public static 娴嬭瘯涓枃琛2 Create(string title, DateTime ctm) { - return new 测试中文表2 { 标题 = title, 标题22 = title, 创建时间 = ctm }; + return new 娴嬭瘯涓枃琛2 { 鏍囬 = title, 鏍囬22 = title, 鍒涘缓鏃堕棿 = ctm }; } } @@ -537,7 +557,7 @@ namespace FreeSql.Tests.MySql { var sql = g.mysql.CodeFirst.GetComparisonDDLStatements(); - Assert.True(string.IsNullOrEmpty(sql)); //测试运行两次后 + Assert.True(string.IsNullOrEmpty(sql)); //娴嬭瘯杩愯涓ゆ鍚 sql = g.mysql.CodeFirst.GetComparisonDDLStatements(); } @@ -558,7 +578,7 @@ namespace FreeSql.Tests.MySql testFieldBoolNullable = true, testFieldByte = 255, testFieldByteNullable = 127, - testFieldBytes = Encoding.UTF8.GetBytes("我是中国人"), + testFieldBytes = Encoding.UTF8.GetBytes("鎴戞槸涓浗浜"), testFieldDateTime = DateTime.Now, testFieldDateTimeNullable = DateTime.Now.AddHours(-1), testFieldDecimal = 99.99M, @@ -602,7 +622,7 @@ namespace FreeSql.Tests.MySql testFieldSByteNullable = 99, testFieldShort = short.MaxValue, testFieldShortNullable = short.MinValue, - testFieldString = "我是中国人string'\\?!@#$%^&*()_+{}}{~?><<>", + testFieldString = "鎴戞槸涓浗浜簊tring'\\?!@#$%^&*()_+{}}{~?><<>", testFieldChar = 'X', testFieldTimeSpan = TimeSpan.FromSeconds(999), testFieldTimeSpanNullable = TimeSpan.FromSeconds(60), @@ -831,7 +851,7 @@ namespace FreeSql.Tests.MySql } /// - /// 保存或添加,如果主键有值则尝试 Update,如果影响的行为 0 则尝试 Insert + /// 淇濆瓨鎴栨坊鍔狅紝濡傛灉涓婚敭鏈夊煎垯灏濊瘯 Update锛屽鏋滃奖鍝嶇殑琛屼负 0 鍒欏皾璇 Insert /// public void Save() { diff --git a/FreeSql.Tests/FreeSql.Tests/Oracle/OracleCodeFirstTest.cs b/FreeSql.Tests/FreeSql.Tests/Oracle/OracleCodeFirstTest.cs index 76c00e43..6cc66e4c 100644 --- a/FreeSql.Tests/FreeSql.Tests/Oracle/OracleCodeFirstTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/Oracle/OracleCodeFirstTest.cs @@ -1,4 +1,4 @@ -using FreeSql.DataAnnotations; +锘縰sing FreeSql.DataAnnotations; using Newtonsoft.Json; using Oracle.ManagedDataAccess.Client; using System; @@ -15,12 +15,32 @@ namespace FreeSql.Tests.Oracle { public class OracleCodeFirstTest { + [Fact] + public void Test_0String() + { + var fsql = g.oracle; + fsql.Delete().Where("1=1").ExecuteAffrows(); + + Assert.Equal(1, fsql.Insert(new test_0string01 { name = @"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000" }).ExecuteAffrows()); + Assert.Equal(1, fsql.Insert(new test_0string01 { name = @"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000" }).NoneParameter().ExecuteAffrows()); + + var list = fsql.Select().ToList(); + Assert.Equal(2, list.Count); + Assert.Equal(@"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000", list[0].name); + Assert.Equal(@"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000", list[1].name); + } + class test_0string01 + { + public Guid id { get; set; } + public string name { get; set; } + } + [Fact] public void InsertUpdateParameter() { var fsql = g.oracle; fsql.CodeFirst.SyncStructure(); - var item = new ts_iupstr { id = Guid.NewGuid(), title = string.Join(",", Enumerable.Range(0, 2000).Select(a => "我是中国人")) }; + var item = new ts_iupstr { id = Guid.NewGuid(), title = string.Join(",", Enumerable.Range(0, 2000).Select(a => "鎴戞槸涓浗浜")) }; Assert.Equal(1, fsql.Insert(item).ExecuteAffrows()); var find = fsql.Select().Where(a => a.id == item.id).First(); Assert.NotNull(find); @@ -52,7 +72,7 @@ namespace FreeSql.Tests.Oracle //.UseNoneCommandParameter(true) .UseMonitorCommand( - cmd => Trace.WriteLine("\r\n线程" + Thread.CurrentThread.ManagedThreadId + ": " + cmd.CommandText) //监听SQL命令对象,在执行前 + cmd => Trace.WriteLine("\r\n绾跨▼" + Thread.CurrentThread.ManagedThreadId + ": " + cmd.CommandText) //鐩戝惉SQL鍛戒护瀵硅薄锛屽湪鎵ц鍓 //, (cmd, traceLog) => Console.WriteLine(traceLog) ) .Build()) @@ -115,7 +135,7 @@ namespace FreeSql.Tests.Oracle [Fact] public void NClob_StringLength_1() { - var str1 = string.Join(",", Enumerable.Range(0, 10000).Select(a => "我是中国人")); + var str1 = string.Join(",", Enumerable.Range(0, 10000).Select(a => "鎴戞槸涓浗浜")); var item1 = new TS_NCLB02 { Data = str1 }; Assert.Equal(1, g.oracle.Insert(item1).ExecuteAffrows()); @@ -126,7 +146,7 @@ namespace FreeSql.Tests.Oracle //NoneParameter item1 = new TS_NCLB02 { Data = str1 }; Assert.Equal(1, g.oracle.Insert(item1).NoneParameter().ExecuteAffrows()); - //Oracle.ManagedDataAccess.Client.OracleException:“ORA-01704: 字符串文字太长” + //Oracle.ManagedDataAccess.Client.OracleException:鈥淥RA-01704: 瀛楃涓叉枃瀛楀お闀库 item2 = g.oracle.Select().Where(a => a.Id == item1.Id).First(); Assert.Equal(str1, item2.Data); @@ -141,7 +161,7 @@ namespace FreeSql.Tests.Oracle [Fact] public void NClob() { - var str1 = string.Join(",", Enumerable.Range(0, 10000).Select(a => "我是中国人")); + var str1 = string.Join(",", Enumerable.Range(0, 10000).Select(a => "鎴戞槸涓浗浜")); var item1 = new TS_NCLB01 { Data = str1 }; Assert.Equal(1, g.oracle.Insert(item1).ExecuteAffrows()); @@ -152,7 +172,7 @@ namespace FreeSql.Tests.Oracle //NoneParameter item1 = new TS_NCLB01 { Data = str1 }; Assert.Equal(1, g.oracle.Insert(item1).NoneParameter().ExecuteAffrows()); - //Oracle.ManagedDataAccess.Client.OracleException:“ORA-01704: 字符串文字太长” + //Oracle.ManagedDataAccess.Client.OracleException:鈥淥RA-01704: 瀛楃涓叉枃瀛楀お闀库 item2 = g.oracle.Select().Where(a => a.Id == item1.Id).First(); Assert.Equal(str1, item2.Data); @@ -166,7 +186,7 @@ namespace FreeSql.Tests.Oracle [Fact] public void Clob() { - var str1 = string.Join(",", Enumerable.Range(0, 10000).Select(a => "我是中国人")); + var str1 = string.Join(",", Enumerable.Range(0, 10000).Select(a => "鎴戞槸涓浗浜")); var item1 = new TS_CLB01 { Data = str1 }; Assert.Equal(1, g.oracle.Insert(item1).ExecuteAffrows()); @@ -177,7 +197,7 @@ namespace FreeSql.Tests.Oracle //NoneParameter item1 = new TS_CLB01 { Data = str1 }; Assert.Equal(1, g.oracle.Insert(item1).NoneParameter().ExecuteAffrows()); - //Oracle.ManagedDataAccess.Client.OracleException:“ORA-01704: 字符串文字太长” + //Oracle.ManagedDataAccess.Client.OracleException:鈥淥RA-01704: 瀛楃涓叉枃瀛楀お闀库 item2 = g.oracle.Select().Where(a => a.Id == item1.Id).First(); Assert.Equal(str1, item2.Data); @@ -191,7 +211,7 @@ namespace FreeSql.Tests.Oracle [Fact] public void Blob() { - var str1 = string.Join(",", Enumerable.Range(0, 10000).Select(a => "我是中国人")); + var str1 = string.Join(",", Enumerable.Range(0, 10000).Select(a => "鎴戞槸涓浗浜")); var data1 = Encoding.UTF8.GetBytes(str1); var item1 = new TS_BLB01 { Data = data1 }; @@ -206,7 +226,7 @@ namespace FreeSql.Tests.Oracle //NoneParameter item1 = new TS_BLB01 { Data = data1 }; Assert.Equal(1, g.oracle.Insert(item1).NoneParameter().ExecuteAffrows()); - //Oracle.ManagedDataAccess.Client.OracleException:“ORA-01704: 字符串文字太长” + //Oracle.ManagedDataAccess.Client.OracleException:鈥淥RA-01704: 瀛楃涓叉枃瀛楀お闀库 item2 = g.oracle.Select().Where(a => a.Id == item1.Id).First(); Assert.Equal(item1.Data.Length, item2.Data.Length); @@ -244,111 +264,111 @@ namespace FreeSql.Tests.Oracle } [Fact] - public void 数字表_字段() + public void 鏁板瓧琛╛瀛楁() { - var sql = g.oracle.CodeFirst.GetComparisonDDLStatements<测试数字表>(); - g.oracle.CodeFirst.SyncStructure<测试数字表>(); + var sql = g.oracle.CodeFirst.GetComparisonDDLStatements<娴嬭瘯鏁板瓧琛>(); + g.oracle.CodeFirst.SyncStructure<娴嬭瘯鏁板瓧琛>(); - var item = new 测试数字表 + var item = new 娴嬭瘯鏁板瓧琛 { - 标题 = "测试标题", - 创建时间 = DateTime.Now + 鏍囬 = "娴嬭瘯鏍囬", + 鍒涘缓鏃堕棿 = DateTime.Now }; - Assert.Equal(1, g.oracle.Insert<测试数字表>().AppendData(item).ExecuteAffrows()); - Assert.NotEqual(Guid.Empty, item.编号); - var item2 = g.oracle.Select<测试数字表>().Where(a => a.编号 == item.编号).First(); + Assert.Equal(1, g.oracle.Insert<娴嬭瘯鏁板瓧琛>().AppendData(item).ExecuteAffrows()); + Assert.NotEqual(Guid.Empty, item.缂栧彿); + var item2 = g.oracle.Select<娴嬭瘯鏁板瓧琛>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); - item.标题 = "测试标题更新"; - Assert.Equal(1, g.oracle.Update<测试数字表>().SetSource(item).ExecuteAffrows()); - item2 = g.oracle.Select<测试数字表>().Where(a => a.编号 == item.编号).First(); + item.鏍囬 = "娴嬭瘯鏍囬鏇存柊"; + Assert.Equal(1, g.oracle.Update<娴嬭瘯鏁板瓧琛>().SetSource(item).ExecuteAffrows()); + item2 = g.oracle.Select<娴嬭瘯鏁板瓧琛>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); - item.标题 = "测试标题更新_repo"; - var repo = g.oracle.GetRepository<测试数字表>(); + item.鏍囬 = "娴嬭瘯鏍囬鏇存柊_repo"; + var repo = g.oracle.GetRepository<娴嬭瘯鏁板瓧琛>(); Assert.Equal(1, repo.Update(item)); - item2 = g.oracle.Select<测试数字表>().Where(a => a.编号 == item.编号).First(); + item2 = g.oracle.Select<娴嬭瘯鏁板瓧琛>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); - item.标题 = "测试标题更新_repo22"; + item.鏍囬 = "娴嬭瘯鏍囬鏇存柊_repo22"; Assert.Equal(1, repo.Update(item)); - item2 = g.oracle.Select<测试数字表>().Where(a => a.编号 == item.编号).First(); + item2 = g.oracle.Select<娴嬭瘯鏁板瓧琛>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); } [Table(Name = "123tb")] [OraclePrimaryKeyName("pk1_123tb")] - class 测试数字表 + class 娴嬭瘯鏁板瓧琛 { [Column(IsPrimary = true, Name = "123id")] - public Guid 编号 { get; set; } + public Guid 缂栧彿 { get; set; } [Column(Name = "123title")] - public string 标题 { get; set; } + public string 鏍囬 { get; set; } [Column(Name = "123time")] - public DateTime 创建时间 { get; set; } + public DateTime 鍒涘缓鏃堕棿 { get; set; } } [Fact] - public void 中文表_字段() + public void 涓枃琛╛瀛楁() { - var sql = g.oracle.CodeFirst.GetComparisonDDLStatements<测试中文表>(); - g.oracle.CodeFirst.SyncStructure<测试中文表>(); + var sql = g.oracle.CodeFirst.GetComparisonDDLStatements<娴嬭瘯涓枃琛>(); + g.oracle.CodeFirst.SyncStructure<娴嬭瘯涓枃琛>(); - var item = new 测试中文表 + var item = new 娴嬭瘯涓枃琛 { - 标题 = "测试标题", - 创建时间 = DateTime.Now + 鏍囬 = "娴嬭瘯鏍囬", + 鍒涘缓鏃堕棿 = DateTime.Now }; - Assert.Equal(1, g.oracle.Insert<测试中文表>().AppendData(item).ExecuteAffrows()); - Assert.NotEqual(Guid.Empty, item.编号); - var item2 = g.oracle.Select<测试中文表>().Where(a => a.编号 == item.编号).First(); + Assert.Equal(1, g.oracle.Insert<娴嬭瘯涓枃琛>().AppendData(item).ExecuteAffrows()); + Assert.NotEqual(Guid.Empty, item.缂栧彿); + var item2 = g.oracle.Select<娴嬭瘯涓枃琛>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); - item.标题 = "测试标题更新"; - Assert.Equal(1, g.oracle.Update<测试中文表>().SetSource(item).ExecuteAffrows()); - item2 = g.oracle.Select<测试中文表>().Where(a => a.编号 == item.编号).First(); + item.鏍囬 = "娴嬭瘯鏍囬鏇存柊"; + Assert.Equal(1, g.oracle.Update<娴嬭瘯涓枃琛>().SetSource(item).ExecuteAffrows()); + item2 = g.oracle.Select<娴嬭瘯涓枃琛>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); - item.标题 = "测试标题更新_repo"; - var repo = g.oracle.GetRepository<测试中文表>(); + item.鏍囬 = "娴嬭瘯鏍囬鏇存柊_repo"; + var repo = g.oracle.GetRepository<娴嬭瘯涓枃琛>(); Assert.Equal(1, repo.Update(item)); - item2 = g.oracle.Select<测试中文表>().Where(a => a.编号 == item.编号).First(); + item2 = g.oracle.Select<娴嬭瘯涓枃琛>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); - item.标题 = "测试标题更新_repo22"; + item.鏍囬 = "娴嬭瘯鏍囬鏇存柊_repo22"; Assert.Equal(1, repo.Update(item)); - item2 = g.oracle.Select<测试中文表>().Where(a => a.编号 == item.编号).First(); + item2 = g.oracle.Select<娴嬭瘯涓枃琛>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); } - class 测试中文表 + class 娴嬭瘯涓枃琛 { [Column(IsPrimary = true)] - public Guid 编号 { get; set; } + public Guid 缂栧彿 { get; set; } - public string 标题 { get; set; } + public string 鏍囬 { get; set; } [Column(ServerTime = DateTimeKind.Local, CanUpdate = false)] - public DateTime 创建时间 { get; set; } + public DateTime 鍒涘缓鏃堕棿 { get; set; } [Column(ServerTime = DateTimeKind.Local)] - public DateTime 更新时间 { get; set; } + public DateTime 鏇存柊鏃堕棿 { get; set; } } [Fact] @@ -401,7 +421,7 @@ namespace FreeSql.Tests.Oracle { var sql = g.oracle.CodeFirst.GetComparisonDDLStatements(); - Assert.True(string.IsNullOrEmpty(sql)); //测试运行两次后 + Assert.True(string.IsNullOrEmpty(sql)); //娴嬭瘯杩愯涓ゆ鍚 //sql = g.oracle.CodeFirst.GetComparisonDDLStatements(); } @@ -422,7 +442,7 @@ namespace FreeSql.Tests.Oracle BoolNullable = true, Byte = 255, ByteNullable = 127, - Bytes = Encoding.UTF8.GetBytes("我是中国人"), + Bytes = Encoding.UTF8.GetBytes("鎴戞槸涓浗浜"), DateTime = DateTime.Now, DateTimeNullable = DateTime.Now.AddHours(-1), Decimal = 99.99M, @@ -443,7 +463,7 @@ namespace FreeSql.Tests.Oracle SByteNullable = 99, Short = short.MaxValue, ShortNullable = short.MinValue, - String = "我是中国人string'\\?!@#$%^&*()_+{}}{~?><<>", + String = "鎴戞槸涓浗浜簊tring'\\?!@#$%^&*()_+{}}{~?><<>", Char = 'X', TimeSpan = TimeSpan.FromSeconds(999), TimeSpanNullable = TimeSpan.FromSeconds(60), diff --git a/FreeSql.Tests/FreeSql.Tests/PostgreSQL/PostgreSQLCodeFirstTest.cs b/FreeSql.Tests/FreeSql.Tests/PostgreSQL/PostgreSQLCodeFirstTest.cs index 2986858d..d242bdb9 100644 --- a/FreeSql.Tests/FreeSql.Tests/PostgreSQL/PostgreSQLCodeFirstTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/PostgreSQL/PostgreSQLCodeFirstTest.cs @@ -19,6 +19,26 @@ namespace FreeSql.Tests.PostgreSQL public class PostgreSQLCodeFirstTest { + [Fact] + public void Test_0String() + { + var fsql = g.pgsql; + fsql.Delete().Where("1=1").ExecuteAffrows(); + + Assert.Equal(1, fsql.Insert(new test_0string01 { name = @"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000" }).ExecuteAffrows()); + Assert.Equal(1, fsql.Insert(new test_0string01 { name = @"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000" }).NoneParameter().ExecuteAffrows()); + + var list = fsql.Select().ToList(); + Assert.Equal(2, list.Count); + Assert.Equal(@"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000", list[0].name); + Assert.Equal(@"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000", list[1].name); + } + class test_0string01 + { + public Guid id { get; set; } + public string name { get; set; } + } + [Fact] public void InsertUpdateParameter() { diff --git a/FreeSql.Tests/FreeSql.Tests/SqlServer/SqlServerCodeFirstTest.cs b/FreeSql.Tests/FreeSql.Tests/SqlServer/SqlServerCodeFirstTest.cs index 9144f224..63df89b7 100644 --- a/FreeSql.Tests/FreeSql.Tests/SqlServer/SqlServerCodeFirstTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/SqlServer/SqlServerCodeFirstTest.cs @@ -1,4 +1,4 @@ -using FreeSql.DataAnnotations; +锘縰sing FreeSql.DataAnnotations; using FreeSql.Tests.DataContext.SqlServer; using Newtonsoft.Json; using System; @@ -12,6 +12,26 @@ namespace FreeSql.Tests.SqlServer { public class SqlServerCodeFirstTest { + [Fact] + public void Test_0String() + { + var fsql = g.sqlserver; + fsql.Delete().Where("1=1").ExecuteAffrows(); + + Assert.Equal(1, fsql.Insert(new test_0string01 { name = @"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000" }).ExecuteAffrows()); + Assert.Equal(1, fsql.Insert(new test_0string01 { name = @"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000" }).NoneParameter().ExecuteAffrows()); + + var list = fsql.Select().ToList(); + Assert.Equal(2, list.Count); + Assert.Equal(@"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000", list[0].name); + Assert.Equal(@"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000", list[1].name); + } + class test_0string01 + { + public Guid id { get; set; } + public string name { get; set; } + } + [Fact] public void GeographyCrud() { @@ -168,7 +188,7 @@ namespace FreeSql.Tests.SqlServer item6 = fsql.Select().Where(a => a.id == id1).First(a => new ts_geocurd01_dto1 { geo = a.geo }); Assert.Equal(geo1, item6.geo); - //批量 + //鎵归噺 fsql.Delete().Where("1=1").ExecuteAffrows(); id1 = Guid.NewGuid(); geo1 = "LINESTRING (-122.36 47.656, -122.343 47.656)"; @@ -190,7 +210,7 @@ namespace FreeSql.Tests.SqlServer Assert.Equal(items[1].id, item1.id); Assert.Equal(items[1].geo, item1.geo); - //批量 NoneParameter + //鎵归噺 NoneParameter fsql.Delete().Where("1=1").ExecuteAffrows(); id1 = Guid.NewGuid(); geo1 = "LINESTRING (-122.36 47.656, -122.343 47.656)"; @@ -228,7 +248,7 @@ namespace FreeSql.Tests.SqlServer { var fsql = g.sqlserver; fsql.CodeFirst.SyncStructure(); - var item = new ts_iupstr { id = Guid.NewGuid(), title = string.Join(",", Enumerable.Range(0, 2000).Select(a => "我是中国人")) }; + var item = new ts_iupstr { id = Guid.NewGuid(), title = string.Join(",", Enumerable.Range(0, 2000).Select(a => "鎴戞槸涓浗浜")) }; Assert.Equal(1, fsql.Insert(item).ExecuteAffrows()); var find = fsql.Select().Where(a => a.id == item.id).First(); Assert.NotNull(find); @@ -330,7 +350,7 @@ namespace FreeSql.Tests.SqlServer [Fact] public void Blob() { - var str1 = string.Join(",", Enumerable.Range(0, 10000).Select(a => "我是中国人")); + var str1 = string.Join(",", Enumerable.Range(0, 10000).Select(a => "鎴戞槸涓浗浜")); var data1 = Encoding.UTF8.GetBytes(str1); var item1 = new TS_BLB01 { Data = data1 }; @@ -376,7 +396,7 @@ namespace FreeSql.Tests.SqlServer } [Fact] - public void 表名中有点() + public void 琛ㄥ悕涓湁鐐() { var item = new tbdot01 { name = "insert" }; g.sqlserver.Insert(item).ExecuteAffrows(); @@ -397,70 +417,70 @@ namespace FreeSql.Tests.SqlServer Assert.Null(find); } /// - /// 表中带点 + /// 琛ㄤ腑甯︾偣 /// [Table(Name = "[freesql.T].[dbo].[sys.tbdot01]")] class tbdot01 { /// - /// 主键 + /// 涓婚敭 /// public Guid id { get; set; } public string name { get; set; } } [Fact] - public void 中文表_字段() + public void 涓枃琛╛瀛楁() { - var sql = g.sqlserver.CodeFirst.GetComparisonDDLStatements<测试中文表>(); - g.sqlserver.CodeFirst.SyncStructure<测试中文表>(); + var sql = g.sqlserver.CodeFirst.GetComparisonDDLStatements<娴嬭瘯涓枃琛>(); + g.sqlserver.CodeFirst.SyncStructure<娴嬭瘯涓枃琛>(); - var item = new 测试中文表 + var item = new 娴嬭瘯涓枃琛 { - 标题 = "测试标题", - 创建时间 = DateTime.Now + 鏍囬 = "娴嬭瘯鏍囬", + 鍒涘缓鏃堕棿 = DateTime.Now }; - Assert.Equal(1, g.sqlserver.Insert<测试中文表>().AppendData(item).ExecuteAffrows()); - Assert.NotEqual(Guid.Empty, item.编号); - var item2 = g.sqlserver.Select<测试中文表>().Where(a => a.编号 == item.编号).First(); + Assert.Equal(1, g.sqlserver.Insert<娴嬭瘯涓枃琛>().AppendData(item).ExecuteAffrows()); + Assert.NotEqual(Guid.Empty, item.缂栧彿); + var item2 = g.sqlserver.Select<娴嬭瘯涓枃琛>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); - item.标题 = "测试标题更新"; - Assert.Equal(1, g.sqlserver.Update<测试中文表>().SetSource(item).ExecuteAffrows()); - item2 = g.sqlserver.Select<测试中文表>().Where(a => a.编号 == item.编号).First(); + item.鏍囬 = "娴嬭瘯鏍囬鏇存柊"; + Assert.Equal(1, g.sqlserver.Update<娴嬭瘯涓枃琛>().SetSource(item).ExecuteAffrows()); + item2 = g.sqlserver.Select<娴嬭瘯涓枃琛>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); - item.标题 = "测试标题更新_repo"; - var repo = g.sqlserver.GetRepository<测试中文表>(); + item.鏍囬 = "娴嬭瘯鏍囬鏇存柊_repo"; + var repo = g.sqlserver.GetRepository<娴嬭瘯涓枃琛>(); Assert.Equal(1, repo.Update(item)); - item2 = g.sqlserver.Select<测试中文表>().Where(a => a.编号 == item.编号).First(); + item2 = g.sqlserver.Select<娴嬭瘯涓枃琛>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); - item.标题 = "测试标题更新_repo22"; + item.鏍囬 = "娴嬭瘯鏍囬鏇存柊_repo22"; Assert.Equal(1, repo.Update(item)); - item2 = g.sqlserver.Select<测试中文表>().Where(a => a.编号 == item.编号).First(); + item2 = g.sqlserver.Select<娴嬭瘯涓枃琛>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); } - class 测试中文表 + class 娴嬭瘯涓枃琛 { [Column(IsPrimary = true)] - public Guid 编号 { get; set; } + public Guid 缂栧彿 { get; set; } - public string 标题 { get; set; } + public string 鏍囬 { get; set; } [Column(ServerTime = DateTimeKind.Local, CanUpdate = false)] - public DateTime 创建时间 { get; set; } + public DateTime 鍒涘缓鏃堕棿 { get; set; } [Column(ServerTime = DateTimeKind.Local)] - public DateTime 更新时间 { get; set; } + public DateTime 鏇存柊鏃堕棿 { get; set; } } @@ -518,7 +538,7 @@ namespace FreeSql.Tests.SqlServer public void GetComparisonDDLStatements() { var sql = g.sqlserver.CodeFirst.GetComparisonDDLStatements(); - Assert.True(string.IsNullOrEmpty(sql)); //测试运行两次后 + Assert.True(string.IsNullOrEmpty(sql)); //娴嬭瘯杩愯涓ゆ鍚 sql = g.sqlserver.CodeFirst.GetComparisonDDLStatements(); } @@ -539,7 +559,7 @@ namespace FreeSql.Tests.SqlServer testFieldBoolNullable = true, testFieldByte = byte.MaxValue, testFieldByteNullable = byte.MinValue, - testFieldBytes = Encoding.GetEncoding("gb2312").GetBytes("我是中国人"), + testFieldBytes = Encoding.GetEncoding("gb2312").GetBytes("鎴戞槸涓浗浜"), testFieldDateTime = DateTime.Now, testFieldDateTimeNullable = DateTime.Now.AddHours(1), testFieldDateTimeNullableOffset = new DateTimeOffset(DateTime.Now.AddHours(1), TimeSpan.FromHours(8)), @@ -563,7 +583,7 @@ namespace FreeSql.Tests.SqlServer testFieldSByteNullable = sbyte.MinValue, testFieldShort = short.MaxValue, testFieldShortNullable = short.MinValue, - testFieldString = "我是中国人string'\\?!@#$%^&*()_+{}}{~?><<>", + testFieldString = "鎴戞槸涓浗浜簊tring'\\?!@#$%^&*()_+{}}{~?><<>", testFieldChar = 'X', testFieldTimeSpan = TimeSpan.FromSeconds(999), testFieldTimeSpanNullable = TimeSpan.FromSeconds(30), diff --git a/FreeSql.Tests/FreeSql.Tests/Sqlite/SqliteCodeFirstTest.cs b/FreeSql.Tests/FreeSql.Tests/Sqlite/SqliteCodeFirstTest.cs index 851b9504..88ee73ee 100644 --- a/FreeSql.Tests/FreeSql.Tests/Sqlite/SqliteCodeFirstTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/Sqlite/SqliteCodeFirstTest.cs @@ -1,4 +1,4 @@ -using FreeSql.DataAnnotations; +锘縰sing FreeSql.DataAnnotations; using Newtonsoft.Json; using System; using System.Collections.Generic; @@ -11,12 +11,32 @@ namespace FreeSql.Tests.Sqlite { public class SqliteCodeFirstTest { + [Fact] + public void Test_0String() + { + var fsql = g.sqlite; + fsql.Delete().Where("1=1").ExecuteAffrows(); + + Assert.Equal(1, fsql.Insert(new test_0string01 { name = @"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000" }).ExecuteAffrows()); + Assert.Equal(1, fsql.Insert(new test_0string01 { name = @"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000" }).NoneParameter().ExecuteAffrows()); + + var list = fsql.Select().ToList(); + Assert.Equal(2, list.Count); + Assert.Equal(@"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000", list[0].name); + Assert.Equal(@"1.0000\0.0000\0.0000\0.0000\1.0000\0.0000", list[1].name); + } + class test_0string01 + { + public Guid id { get; set; } + public string name { get; set; } + } + [Fact] public void InsertUpdateParameter() { var fsql = g.sqlite; fsql.CodeFirst.SyncStructure(); - var item = new ts_iupstr { id = Guid.NewGuid(), title = string.Join(",", Enumerable.Range(0, 2000).Select(a => "我是中国人")) }; + var item = new ts_iupstr { id = Guid.NewGuid(), title = string.Join(",", Enumerable.Range(0, 2000).Select(a => "鎴戞槸涓浗浜")) }; Assert.Equal(1, fsql.Insert(item).ExecuteAffrows()); var find = fsql.Select().Where(a => a.id == item.id).First(); Assert.NotNull(find); @@ -39,7 +59,7 @@ namespace FreeSql.Tests.Sqlite [Fact] public void Blob() { - var str1 = string.Join(",", Enumerable.Range(0, 10000).Select(a => "我是中国人")); + var str1 = string.Join(",", Enumerable.Range(0, 10000).Select(a => "鎴戞槸涓浗浜")); var data1 = Encoding.UTF8.GetBytes(str1); var item1 = new TS_BLB01 { Data = data1 }; @@ -92,7 +112,7 @@ namespace FreeSql.Tests.Sqlite } [Fact] - public void 表名中有点() + public void 琛ㄥ悕涓湁鐐() { var item = new tbdot01 { name = "insert" }; g.sqlite.Insert(item).ExecuteAffrows(); @@ -120,57 +140,57 @@ namespace FreeSql.Tests.Sqlite } [Fact] - public void 中文表_字段() + public void 涓枃琛╛瀛楁() { - var sql = g.sqlite.CodeFirst.GetComparisonDDLStatements<测试中文表>(); - g.sqlite.CodeFirst.SyncStructure<测试中文表>(); + var sql = g.sqlite.CodeFirst.GetComparisonDDLStatements<娴嬭瘯涓枃琛>(); + g.sqlite.CodeFirst.SyncStructure<娴嬭瘯涓枃琛>(); - var item = new 测试中文表 + var item = new 娴嬭瘯涓枃琛 { - 标题 = "测试标题", - 创建时间 = DateTime.Now + 鏍囬 = "娴嬭瘯鏍囬", + 鍒涘缓鏃堕棿 = DateTime.Now }; - Assert.Equal(1, g.sqlite.Insert<测试中文表>().AppendData(item).ExecuteAffrows()); - Assert.NotEqual(Guid.Empty, item.编号); - var item2 = g.sqlite.Select<测试中文表>().Where(a => a.编号 == item.编号).First(); + Assert.Equal(1, g.sqlite.Insert<娴嬭瘯涓枃琛>().AppendData(item).ExecuteAffrows()); + Assert.NotEqual(Guid.Empty, item.缂栧彿); + var item2 = g.sqlite.Select<娴嬭瘯涓枃琛>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); - item.标题 = "测试标题更新"; - Assert.Equal(1, g.sqlite.Update<测试中文表>().SetSource(item).ExecuteAffrows()); - item2 = g.sqlite.Select<测试中文表>().Where(a => a.编号 == item.编号).First(); + item.鏍囬 = "娴嬭瘯鏍囬鏇存柊"; + Assert.Equal(1, g.sqlite.Update<娴嬭瘯涓枃琛>().SetSource(item).ExecuteAffrows()); + item2 = g.sqlite.Select<娴嬭瘯涓枃琛>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); - item.标题 = "测试标题更新_repo"; - var repo = g.sqlite.GetRepository<测试中文表>(); + item.鏍囬 = "娴嬭瘯鏍囬鏇存柊_repo"; + var repo = g.sqlite.GetRepository<娴嬭瘯涓枃琛>(); Assert.Equal(1, repo.Update(item)); - item2 = g.sqlite.Select<测试中文表>().Where(a => a.编号 == item.编号).First(); + item2 = g.sqlite.Select<娴嬭瘯涓枃琛>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); - item.标题 = "测试标题更新_repo22"; + item.鏍囬 = "娴嬭瘯鏍囬鏇存柊_repo22"; Assert.Equal(1, repo.Update(item)); - item2 = g.sqlite.Select<测试中文表>().Where(a => a.编号 == item.编号).First(); + item2 = g.sqlite.Select<娴嬭瘯涓枃琛>().Where(a => a.缂栧彿 == item.缂栧彿).First(); Assert.NotNull(item2); - Assert.Equal(item.编号, item2.编号); - Assert.Equal(item.标题, item2.标题); + Assert.Equal(item.缂栧彿, item2.缂栧彿); + Assert.Equal(item.鏍囬, item2.鏍囬); } - class 测试中文表 + class 娴嬭瘯涓枃琛 { [Column(IsPrimary = true)] - public Guid 编号 { get; set; } + public Guid 缂栧彿 { get; set; } - public string 标题 { get; set; } + public string 鏍囬 { get; set; } [Column(ServerTime = DateTimeKind.Local, CanUpdate = false)] - public DateTime 创建时间 { get; set; } + public DateTime 鍒涘缓鏃堕棿 { get; set; } [Column(ServerTime = DateTimeKind.Local)] - public DateTime 更新时间 { get; set; } + public DateTime 鏇存柊鏃堕棿 { get; set; } } [Fact] @@ -217,29 +237,29 @@ namespace FreeSql.Tests.Sqlite public void AddField() { - //秀一波 FreeSql.Repository 扩展包,dotnet add package FreeSql.Repository + //绉涓娉 FreeSql.Repository 鎵╁睍鍖咃紝dotnet add package FreeSql.Repository var topicRepository = g.sqlite.GetGuidRepository(); var commentRepository = g.sqlite.GetGuidRepository(); - //添加测试文章 + //娣诲姞娴嬭瘯鏂囩珷 var topic = topicRepository.Insert(new Topic { - Title = "文章标题1", - Content = "文章内容1", + Title = "鏂囩珷鏍囬1", + Content = "鏂囩珷鍐呭1", CreateTime = DateTime.Now }); - //添加10条测试评论 + //娣诲姞10鏉℃祴璇曡瘎璁 var comments = Enumerable.Range(0, 10).Select(a => new Comment { TopicId = topic.Id, - Nickname = $"昵称{a}", - Content = $"评论内容{a}", + Nickname = $"鏄电О{a}", + Content = $"璇勮鍐呭{a}", CreateTime = DateTime.Now }).ToArray(); var affrows = commentRepository.Insert(comments); - var find = commentRepository.Select.Where(a => a.Topic.Title == "文章标题1").ToList(); + var find = commentRepository.Select.Where(a => a.Topic.Title == "鏂囩珷鏍囬1").ToList(); @@ -271,7 +291,7 @@ namespace FreeSql.Tests.Sqlite { var sql = g.sqlite.CodeFirst.GetComparisonDDLStatements(); - Assert.True(string.IsNullOrEmpty(sql)); //测试运行两次后 + Assert.True(string.IsNullOrEmpty(sql)); //娴嬭瘯杩愯涓ゆ鍚 //sql = g.Sqlite.CodeFirst.GetComparisonDDLStatements(); } @@ -292,7 +312,7 @@ namespace FreeSql.Tests.Sqlite BoolNullable = true, Byte = 255, ByteNullable = 127, - Bytes = Encoding.UTF8.GetBytes("我是中国人"), + Bytes = Encoding.UTF8.GetBytes("鎴戞槸涓浗浜"), DateTime = DateTime.Now, DateTimeNullable = DateTime.Now.AddHours(-1), Decimal = 99.99M, @@ -313,7 +333,7 @@ namespace FreeSql.Tests.Sqlite SByteNullable = 99, Short = short.MaxValue, ShortNullable = short.MinValue, - String = "我是中国人string'\\?!@#$%^&*()_+{}}{~?><<>", + String = "鎴戞槸涓浗浜簊tring'\\?!@#$%^&*()_+{}}{~?><<>", Char = 'X', TimeSpan = TimeSpan.FromSeconds(999), TimeSpanNullable = TimeSpan.FromSeconds(60),