mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-04-22 18:52:50 +08:00
- 修复 参数化 Column DbType 设置特殊值时的类型判断;
This commit is contained in:
parent
d951b475d9
commit
824d60cbb2
@ -11,6 +11,51 @@ namespace FreeSql.Tests.MySqlConnector
|
|||||||
{
|
{
|
||||||
public class MySqlCodeFirstTest
|
public class MySqlCodeFirstTest
|
||||||
{
|
{
|
||||||
|
[Fact]
|
||||||
|
public void DateTime_1()
|
||||||
|
{
|
||||||
|
var item1 = new TS_DATETIME01 { CreateTime = DateTime.Now };
|
||||||
|
Assert.Equal(1, g.mysql.Insert(item1).ExecuteAffrows());
|
||||||
|
|
||||||
|
var item2 = g.mysql.Select<TS_DATETIME01>().Where(a => a.Id == item1.Id).First();
|
||||||
|
Assert.NotNull(item2.CreateTime);
|
||||||
|
Assert.True(1 > Math.Abs(item2.CreateTime.Value.Subtract(item1.CreateTime.Value).TotalSeconds));
|
||||||
|
|
||||||
|
item1.CreateTime = DateTime.Now;
|
||||||
|
Assert.Equal(1, g.mysql.Update<TS_DATETIME01>().SetSource(item1).ExecuteAffrows());
|
||||||
|
item2 = g.mysql.Select<TS_DATETIME01>().Where(a => a.Id == item1.Id).First();
|
||||||
|
Assert.NotNull(item2.CreateTime);
|
||||||
|
Assert.True(1 > Math.Abs(item2.CreateTime.Value.Subtract(item1.CreateTime.Value).TotalSeconds));
|
||||||
|
}
|
||||||
|
class TS_DATETIME01
|
||||||
|
{
|
||||||
|
public Guid Id { get; set; }
|
||||||
|
[Column(DbType = "datetime NULL")]
|
||||||
|
public DateTime? CreateTime { get; set; }
|
||||||
|
}
|
||||||
|
[Fact]
|
||||||
|
public void DateTime_2()
|
||||||
|
{
|
||||||
|
var item1 = new TS_DATETIME02 { CreateTime = DateTime.Now };
|
||||||
|
Assert.Equal(1, g.mysql.Insert(item1).ExecuteAffrows());
|
||||||
|
|
||||||
|
var item2 = g.mysql.Select<TS_DATETIME02>().Where(a => a.Id == item1.Id).First();
|
||||||
|
Assert.NotNull(item2.CreateTime);
|
||||||
|
Assert.True(1 > Math.Abs(item2.CreateTime.Value.Subtract(item1.CreateTime.Value).TotalSeconds));
|
||||||
|
|
||||||
|
item1.CreateTime = DateTime.Now;
|
||||||
|
Assert.Equal(1, g.mysql.Update<TS_DATETIME02>().SetSource(item1).ExecuteAffrows());
|
||||||
|
item2 = g.mysql.Select<TS_DATETIME02>().Where(a => a.Id == item1.Id).First();
|
||||||
|
Assert.NotNull(item2.CreateTime);
|
||||||
|
Assert.True(1 > Math.Abs(item2.CreateTime.Value.Subtract(item1.CreateTime.Value).TotalSeconds));
|
||||||
|
}
|
||||||
|
class TS_DATETIME02
|
||||||
|
{
|
||||||
|
public Guid Id { get; set; }
|
||||||
|
[Column(DbType = "datetime NOT NULL")]
|
||||||
|
public DateTime? CreateTime { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void Text_StringLength_1()
|
public void Text_StringLength_1()
|
||||||
{
|
{
|
||||||
|
@ -11,6 +11,51 @@ namespace FreeSql.Tests.MySql
|
|||||||
{
|
{
|
||||||
public class MySqlCodeFirstTest
|
public class MySqlCodeFirstTest
|
||||||
{
|
{
|
||||||
|
[Fact]
|
||||||
|
public void DateTime_1()
|
||||||
|
{
|
||||||
|
var item1 = new TS_DATETIME01 { CreateTime = DateTime.Now };
|
||||||
|
Assert.Equal(1, g.mysql.Insert(item1).ExecuteAffrows());
|
||||||
|
|
||||||
|
var item2 = g.mysql.Select<TS_DATETIME01>().Where(a => a.Id == item1.Id).First();
|
||||||
|
Assert.NotNull(item2.CreateTime);
|
||||||
|
Assert.True(1 > Math.Abs(item2.CreateTime.Value.Subtract(item1.CreateTime.Value).TotalSeconds));
|
||||||
|
|
||||||
|
item1.CreateTime = DateTime.Now;
|
||||||
|
Assert.Equal(1, g.mysql.Update<TS_DATETIME01>().SetSource(item1).ExecuteAffrows());
|
||||||
|
item2 = g.mysql.Select<TS_DATETIME01>().Where(a => a.Id == item1.Id).First();
|
||||||
|
Assert.NotNull(item2.CreateTime);
|
||||||
|
Assert.True(1 > Math.Abs(item2.CreateTime.Value.Subtract(item1.CreateTime.Value).TotalSeconds));
|
||||||
|
}
|
||||||
|
class TS_DATETIME01
|
||||||
|
{
|
||||||
|
public Guid Id { get; set; }
|
||||||
|
[Column(DbType = "datetime NULL")]
|
||||||
|
public DateTime? CreateTime { get; set; }
|
||||||
|
}
|
||||||
|
[Fact]
|
||||||
|
public void DateTime_2()
|
||||||
|
{
|
||||||
|
var item1 = new TS_DATETIME02 { CreateTime = DateTime.Now };
|
||||||
|
Assert.Equal(1, g.mysql.Insert(item1).ExecuteAffrows());
|
||||||
|
|
||||||
|
var item2 = g.mysql.Select<TS_DATETIME02>().Where(a => a.Id == item1.Id).First();
|
||||||
|
Assert.NotNull(item2.CreateTime);
|
||||||
|
Assert.True(1 > Math.Abs(item2.CreateTime.Value.Subtract(item1.CreateTime.Value).TotalSeconds));
|
||||||
|
|
||||||
|
item1.CreateTime = DateTime.Now;
|
||||||
|
Assert.Equal(1, g.mysql.Update<TS_DATETIME02>().SetSource(item1).ExecuteAffrows());
|
||||||
|
item2 = g.mysql.Select<TS_DATETIME02>().Where(a => a.Id == item1.Id).First();
|
||||||
|
Assert.NotNull(item2.CreateTime);
|
||||||
|
Assert.True(1 > Math.Abs(item2.CreateTime.Value.Subtract(item1.CreateTime.Value).TotalSeconds));
|
||||||
|
}
|
||||||
|
class TS_DATETIME02
|
||||||
|
{
|
||||||
|
public Guid Id { get; set; }
|
||||||
|
[Column(DbType = "datetime NOT NULL")]
|
||||||
|
public DateTime? CreateTime { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void Text_StringLength_1()
|
public void Text_StringLength_1()
|
||||||
{
|
{
|
||||||
|
@ -18,6 +18,51 @@ namespace FreeSql.Tests.PostgreSQL
|
|||||||
{
|
{
|
||||||
public class PostgreSQLCodeFirstTest
|
public class PostgreSQLCodeFirstTest
|
||||||
{
|
{
|
||||||
|
[Fact]
|
||||||
|
public void DateTime_1()
|
||||||
|
{
|
||||||
|
var item1 = new TS_DATETIME01 { CreateTime = DateTime.Now };
|
||||||
|
Assert.Equal(1, g.pgsql.Insert(item1).ExecuteAffrows());
|
||||||
|
|
||||||
|
var item2 = g.pgsql.Select<TS_DATETIME01>().Where(a => a.Id == item1.Id).First();
|
||||||
|
Assert.NotNull(item2.CreateTime);
|
||||||
|
Assert.True(1 > Math.Abs(item2.CreateTime.Value.Subtract(item1.CreateTime.Value).TotalSeconds));
|
||||||
|
|
||||||
|
item1.CreateTime = DateTime.Now;
|
||||||
|
Assert.Equal(1, g.pgsql.Update<TS_DATETIME01>().SetSource(item1).ExecuteAffrows());
|
||||||
|
item2 = g.pgsql.Select<TS_DATETIME01>().Where(a => a.Id == item1.Id).First();
|
||||||
|
Assert.NotNull(item2.CreateTime);
|
||||||
|
Assert.True(1 > Math.Abs(item2.CreateTime.Value.Subtract(item1.CreateTime.Value).TotalSeconds));
|
||||||
|
}
|
||||||
|
class TS_DATETIME01
|
||||||
|
{
|
||||||
|
public Guid Id { get; set; }
|
||||||
|
[Column(DbType = "timestamp NULL")]
|
||||||
|
public DateTime? CreateTime { get; set; }
|
||||||
|
}
|
||||||
|
[Fact]
|
||||||
|
public void DateTime_2()
|
||||||
|
{
|
||||||
|
var item1 = new TS_DATETIME02 { CreateTime = DateTime.Now };
|
||||||
|
Assert.Equal(1, g.pgsql.Insert(item1).ExecuteAffrows());
|
||||||
|
|
||||||
|
var item2 = g.pgsql.Select<TS_DATETIME02>().Where(a => a.Id == item1.Id).First();
|
||||||
|
Assert.NotNull(item2.CreateTime);
|
||||||
|
Assert.True(1 > Math.Abs(item2.CreateTime.Value.Subtract(item1.CreateTime.Value).TotalSeconds));
|
||||||
|
|
||||||
|
item1.CreateTime = DateTime.Now;
|
||||||
|
Assert.Equal(1, g.pgsql.Update<TS_DATETIME02>().SetSource(item1).ExecuteAffrows());
|
||||||
|
item2 = g.pgsql.Select<TS_DATETIME02>().Where(a => a.Id == item1.Id).First();
|
||||||
|
Assert.NotNull(item2.CreateTime);
|
||||||
|
Assert.True(1 > Math.Abs(item2.CreateTime.Value.Subtract(item1.CreateTime.Value).TotalSeconds));
|
||||||
|
}
|
||||||
|
class TS_DATETIME02
|
||||||
|
{
|
||||||
|
public Guid Id { get; set; }
|
||||||
|
[Column(DbType = "timestamp NOT NULL")]
|
||||||
|
public DateTime? CreateTime { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void Blob()
|
public void Blob()
|
||||||
{
|
{
|
||||||
|
@ -453,12 +453,12 @@ namespace FreeSql.Internal
|
|||||||
foreach (var col in trytb.Primarys)
|
foreach (var col in trytb.Primarys)
|
||||||
{
|
{
|
||||||
col.Attribute.IsNullable = false;
|
col.Attribute.IsNullable = false;
|
||||||
col.Attribute.DbType = col.Attribute.DbType.Replace("NOT NULL", "").Trim();
|
col.Attribute.DbType = col.Attribute.DbType.Replace("NOT NULL", "").Replace(" NULL", "").Trim();
|
||||||
}
|
}
|
||||||
foreach (var col in trytb.Columns.Values)
|
foreach (var col in trytb.Columns.Values)
|
||||||
{
|
{
|
||||||
var ltp = @"\(([^\)]+)\)";
|
var ltp = @"\(([^\)]+)\)";
|
||||||
col.DbTypeText = Regex.Replace(col.Attribute.DbType.Replace("NOT NULL", "").Trim(), ltp, "");
|
col.DbTypeText = Regex.Replace(col.Attribute.DbType.Replace("NOT NULL", "").Replace(" NULL", "").Trim(), ltp, "");
|
||||||
var m = Regex.Match(col.Attribute.DbType, ltp);
|
var m = Regex.Match(col.Attribute.DbType, ltp);
|
||||||
if (m.Success == false) continue;
|
if (m.Success == false) continue;
|
||||||
var sizeStr = m.Groups[1].Value.Trim();
|
var sizeStr = m.Groups[1].Value.Trim();
|
||||||
@ -884,7 +884,7 @@ namespace FreeSql.Internal
|
|||||||
foreach (var col in tbmid.Primarys)
|
foreach (var col in tbmid.Primarys)
|
||||||
{
|
{
|
||||||
col.Attribute.IsNullable = false;
|
col.Attribute.IsNullable = false;
|
||||||
col.Attribute.DbType = col.Attribute.DbType.Replace("NOT NULL", "").Trim();
|
col.Attribute.DbType = col.Attribute.DbType.Replace("NOT NULL", "").Replace(" NULL", "").Trim();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -28,7 +28,7 @@ namespace FreeSql.Oracle
|
|||||||
var ret = new OracleParameter { ParameterName = QuoteParamterName(parameterName), OracleDbType = dbtype, Value = value };
|
var ret = new OracleParameter { ParameterName = QuoteParamterName(parameterName), OracleDbType = dbtype, Value = value };
|
||||||
if (col != null)
|
if (col != null)
|
||||||
{
|
{
|
||||||
var dbtype2 = (OracleDbType)_orm.DbFirst.GetDbType(new DatabaseModel.DbColumnInfo { DbTypeTextFull = col.Attribute.DbType.Replace("NOT NULL", "").Trim(), DbTypeText = col.DbTypeText });
|
var dbtype2 = (OracleDbType)_orm.DbFirst.GetDbType(new DatabaseModel.DbColumnInfo { DbTypeTextFull = col.Attribute.DbType.Replace("NOT NULL", "").Replace(" NULL", "").Trim(), DbTypeText = col.DbTypeText });
|
||||||
switch (dbtype2)
|
switch (dbtype2)
|
||||||
{
|
{
|
||||||
case OracleDbType.Char:
|
case OracleDbType.Char:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user