mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-04-22 02:32:50 +08:00
修复 Convert.ToBoolean bug
This commit is contained in:
parent
f0d8d05886
commit
63c19f8702
@ -9,7 +9,7 @@ namespace FreeSql.Tests.DataContext.SqlServer
|
|||||||
public SqlServerFixture()
|
public SqlServerFixture()
|
||||||
{
|
{
|
||||||
sqlServerLazy = new Lazy<IFreeSql>(() => new FreeSql.FreeSqlBuilder()
|
sqlServerLazy = new Lazy<IFreeSql>(() => new FreeSql.FreeSqlBuilder()
|
||||||
.UseConnectionString(FreeSql.DataType.SqlServer, "Data Source=.;Integrated Security=True;Initial Catalog=cms;Pooling=true;Max Pool Size=10")
|
.UseConnectionString(FreeSql.DataType.SqlServer, "Data Source=.;Integrated Security=True;Initial Catalog=freesqlTest;Pooling=true;Max Pool Size=10")
|
||||||
//.UseConnectionString(FreeSql.DataType.SqlServer, "Data Source=(localdb)\\mssqllocaldb;Integrated Security=True;Initial Catalog=cms;Pooling=true;Max Pool Size=10")
|
//.UseConnectionString(FreeSql.DataType.SqlServer, "Data Source=(localdb)\\mssqllocaldb;Integrated Security=True;Initial Catalog=cms;Pooling=true;Max Pool Size=10")
|
||||||
.UseAutoSyncStructure(true)
|
.UseAutoSyncStructure(true)
|
||||||
.UseLazyLoading(true)
|
.UseLazyLoading(true)
|
||||||
|
@ -66,11 +66,11 @@ namespace FreeSql.Tests.SqlServer {
|
|||||||
var tn1 = _sqlserverFixture.SqlServer.Select<xxx>().Where(a => a.Id > 0).Where(b => b.Title != null).Page(1, 3).ToList(a => a.Id);
|
var tn1 = _sqlserverFixture.SqlServer.Select<xxx>().Where(a => a.Id > 0).Where(b => b.Title != null).Page(1, 3).ToList(a => a.Id);
|
||||||
var tn2 = _sqlserverFixture.SqlServer.Select<xxx>().Where(a => a.Id > 0).Where(b => b.Title != null).Page(2, 3).ToList(a => a.Id);
|
var tn2 = _sqlserverFixture.SqlServer.Select<xxx>().Where(a => a.Id > 0).Where(b => b.Title != null).Page(2, 3).ToList(a => a.Id);
|
||||||
|
|
||||||
var t3 = _sqlserverFixture.SqlServer.Ado.Query<xxx>("select * from song");
|
var t3 = _sqlserverFixture.SqlServer.Ado.Query<xxx>("select * from xxx");
|
||||||
|
|
||||||
var t4 = _sqlserverFixture.SqlServer.Ado.Query<(int, string, string, DateTime)>("select * from song");
|
var t4 = _sqlserverFixture.SqlServer.Ado.Query<(int, int, string, string DateTime)>("select * from xxx");
|
||||||
|
|
||||||
var t5 = _sqlserverFixture.SqlServer.Ado.Query<dynamic>(System.Data.CommandType.Text, "select * from song where Id = @Id",
|
var t5 = _sqlserverFixture.SqlServer.Ado.Query<dynamic>(System.Data.CommandType.Text, "select * from xxx where Id = @Id",
|
||||||
new System.Data.SqlClient.SqlParameter("Id", 1));
|
new System.Data.SqlClient.SqlParameter("Id", 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -44,12 +44,12 @@ namespace FreeSql.Tests.SqlServerExpression {
|
|||||||
[Fact]
|
[Fact]
|
||||||
public void ToBoolean() {
|
public void ToBoolean() {
|
||||||
var data = new List<object>();
|
var data = new List<object>();
|
||||||
data.Add(select.Where(a => (Convert.ToBoolean(a.Clicks) ? 1 : 2) > 0).ToList());
|
data.Add(select.Where(a => (Convert.ToBoolean(a.Clicks) ? 1 : 0) > 0).ToList());
|
||||||
}
|
}
|
||||||
[Fact]
|
[Fact]
|
||||||
public void ToByte() {
|
public void ToByte() {
|
||||||
var data = new List<object>();
|
var data = new List<object>();
|
||||||
data.Add(select.Where(a => Convert.ToByte(a.Clicks) > 0).ToList());
|
data.Add(select.Where(a => Convert.ToByte(a.Clicks % 255) > 0).ToList());
|
||||||
}
|
}
|
||||||
[Fact]
|
[Fact]
|
||||||
public void ToChar() {
|
public void ToChar() {
|
||||||
@ -89,7 +89,7 @@ namespace FreeSql.Tests.SqlServerExpression {
|
|||||||
[Fact]
|
[Fact]
|
||||||
public void ToSByte() {
|
public void ToSByte() {
|
||||||
var data = new List<object>();
|
var data = new List<object>();
|
||||||
data.Add(select.Where(a => Convert.ToSByte(a.Clicks) > 0).ToList());
|
data.Add(select.Where(a => Convert.ToSByte(a.Clicks % 128) > 0).ToList());
|
||||||
}
|
}
|
||||||
[Fact]
|
[Fact]
|
||||||
public void ToSingle() {
|
public void ToSingle() {
|
||||||
|
@ -45,11 +45,10 @@ namespace FreeSql.Tests {
|
|||||||
var queryable = g.mysql.Queryable<TestInfo>().Where(a => a.Id == 1).ToList();
|
var queryable = g.mysql.Queryable<TestInfo>().Where(a => a.Id == 1).ToList();
|
||||||
|
|
||||||
var sql2222 = select.Where(a =>
|
var sql2222 = select.Where(a =>
|
||||||
select.Where(b => b.Id == a.Id && select.Where(c => c.Id == b.Id).Where(d => d.Id == a.Id).Where(e => e.Id == b.Id)
|
select.Where(b => b.Id == a.Id &&
|
||||||
|
select.Where(c => c.Id == b.Id).Where(d => d.Id == a.Id).Where(e => e.Id == b.Id)
|
||||||
.Offset(a.Id)
|
.Offset(a.Id)
|
||||||
|
.Any()
|
||||||
.Any()
|
|
||||||
).Any()
|
).Any()
|
||||||
).ToList();
|
).ToList();
|
||||||
|
|
||||||
|
@ -274,7 +274,7 @@ namespace FreeSql.SqlServer {
|
|||||||
Func<Expression, string> getExp = exparg => ExpressionLambdaToSql(exparg, _tables, _selectColumnMap, getSelectGroupingMapString, tbtype, isQuoteName);
|
Func<Expression, string> getExp = exparg => ExpressionLambdaToSql(exparg, _tables, _selectColumnMap, getSelectGroupingMapString, tbtype, isQuoteName);
|
||||||
if (exp.Object == null) {
|
if (exp.Object == null) {
|
||||||
switch (exp.Method.Name) {
|
switch (exp.Method.Name) {
|
||||||
case "ToBoolean": return $"({getExp(exp.Arguments[0])} not in ('0','false'))";
|
case "ToBoolean": return $"(cast({getExp(exp.Arguments[0])} as varchar) not in ('0','false'))";
|
||||||
case "ToByte": return $"cast({getExp(exp.Arguments[0])} as tinyint)";
|
case "ToByte": return $"cast({getExp(exp.Arguments[0])} as tinyint)";
|
||||||
case "ToChar": return $"substring(cast({getExp(exp.Arguments[0])} as nvarchar),1,1)";
|
case "ToChar": return $"substring(cast({getExp(exp.Arguments[0])} as nvarchar),1,1)";
|
||||||
case "ToDateTime": return $"cast({getExp(exp.Arguments[0])} as datetime)";
|
case "ToDateTime": return $"cast({getExp(exp.Arguments[0])} as datetime)";
|
||||||
|
Loading…
x
Reference in New Issue
Block a user