mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-04-22 02:32:50 +08:00
- 修复 MySql Set 类型空格处理问题;#1059
This commit is contained in:
parent
1e3506e7d8
commit
4cf47488d4
@ -11,6 +11,49 @@ namespace FreeSql.Tests.MySql
|
|||||||
{
|
{
|
||||||
public class MySqlCodeFirstTest
|
public class MySqlCodeFirstTest
|
||||||
{
|
{
|
||||||
|
public enum EnumTest009
|
||||||
|
{
|
||||||
|
A, B, C
|
||||||
|
}
|
||||||
|
|
||||||
|
[Flags]
|
||||||
|
public enum SetTest009
|
||||||
|
{
|
||||||
|
A = 1, B = 2, C = 4
|
||||||
|
}
|
||||||
|
|
||||||
|
public class TestTable009
|
||||||
|
{
|
||||||
|
[Column(IsPrimary = true, IsIdentity = true)]
|
||||||
|
public int Id { get; set; }
|
||||||
|
|
||||||
|
public EnumTest009 ColEnumTest { get; set; }
|
||||||
|
|
||||||
|
public SetTest009 ColSetTest { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
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<TestTable009>().NoneParameter().AppendData(new TestTable009
|
||||||
|
{
|
||||||
|
ColEnumTest = EnumTest009.B,
|
||||||
|
ColSetTest = SetTest009.A | SetTest009.B
|
||||||
|
}).ToSql();
|
||||||
|
Assert.Equal("INSERT INTO `TestTable009`(`ColEnumTest`, `ColSetTest`) VALUES('B', 'A,B')", sql1);
|
||||||
|
|
||||||
|
//²éѯ À©Õ¹·½·¨ 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<TestTable009>().Where(i => (i.ColSetTest & SetTest009.A) == SetTest009.A).ToSql();
|
||||||
|
var sql3 = fsql.Select<TestTable009>().Where(i => (i.ColSetTest & SetTest009.C) == SetTest009.C).ToSql();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void InsertUpdateParameter()
|
public void InsertUpdateParameter()
|
||||||
{
|
{
|
||||||
|
@ -50,7 +50,7 @@ namespace FreeSql.MySql
|
|||||||
else if (param is char)
|
else if (param is char)
|
||||||
return string.Concat("'", param.ToString().Replace("'", "''").Replace("\\", "\\\\").Replace('\0', ' '), "'");
|
return string.Concat("'", param.ToString().Replace("'", "''").Replace("\\", "\\\\").Replace('\0', ' '), "'");
|
||||||
else if (param is Enum)
|
else if (param is Enum)
|
||||||
return string.Concat("'", param.ToString().Replace("'", "''").Replace("\\", "\\\\"), "'"); //((Enum)val).ToInt64();
|
return string.Concat("'", param.ToString().Replace("'", "''").Replace("\\", "\\\\").Replace(", ", ","), "'"); //((Enum)val).ToInt64();
|
||||||
else if (decimal.TryParse(string.Concat(param), out var trydec))
|
else if (decimal.TryParse(string.Concat(param), out var trydec))
|
||||||
return param;
|
return param;
|
||||||
else if (param is DateTime || param is DateTime?)
|
else if (param is DateTime || param is DateTime?)
|
||||||
|
@ -46,7 +46,7 @@ namespace FreeSql.Odbc.MySql
|
|||||||
else if (param is char)
|
else if (param is char)
|
||||||
return string.Concat("'", param.ToString().Replace("'", "''").Replace("\\", "\\\\").Replace('\0', ' '), "'");
|
return string.Concat("'", param.ToString().Replace("'", "''").Replace("\\", "\\\\").Replace('\0', ' '), "'");
|
||||||
else if (param is Enum)
|
else if (param is Enum)
|
||||||
return string.Concat("'", param.ToString().Replace("'", "''").Replace("\\", "\\\\"), "'"); //((Enum)val).ToInt64();
|
return string.Concat("'", param.ToString().Replace("'", "''").Replace("\\", "\\\\").Replace(", ", ","), "'"); //((Enum)val).ToInt64();
|
||||||
else if (decimal.TryParse(string.Concat(param), out var trydec))
|
else if (decimal.TryParse(string.Concat(param), out var trydec))
|
||||||
return param;
|
return param;
|
||||||
else if (param is DateTime || param is DateTime?)
|
else if (param is DateTime || param is DateTime?)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user