mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-04-22 10:42:52 +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 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]
|
||||
public void InsertUpdateParameter()
|
||||
{
|
||||
|
@ -50,7 +50,7 @@ namespace FreeSql.MySql
|
||||
else if (param is char)
|
||||
return string.Concat("'", param.ToString().Replace("'", "''").Replace("\\", "\\\\").Replace('\0', ' '), "'");
|
||||
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))
|
||||
return param;
|
||||
else if (param is DateTime || param is DateTime?)
|
||||
|
@ -46,7 +46,7 @@ namespace FreeSql.Odbc.MySql
|
||||
else if (param is char)
|
||||
return string.Concat("'", param.ToString().Replace("'", "''").Replace("\\", "\\\\").Replace('\0', ' '), "'");
|
||||
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))
|
||||
return param;
|
||||
else if (param is DateTime || param is DateTime?)
|
||||
|
Loading…
x
Reference in New Issue
Block a user