mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-04-22 18:52:50 +08:00
- 增加 "x1".First/FirstOrDefault 表达式函数解析;
This commit is contained in:
parent
f63a69c55c
commit
af153295f8
@ -52,6 +52,19 @@ namespace FreeSql.Tests.MySqlConnectorExpression
|
|||||||
list.Add(g.mysql.Select<TestEqualsGuid>().Where(a => a.IsDeleted.Equals(false)).ToList());
|
list.Add(g.mysql.Select<TestEqualsGuid>().Where(a => a.IsDeleted.Equals(false)).ToList());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void First()
|
||||||
|
{
|
||||||
|
Assert.Equal('x', select.First(a => "x1".First()));
|
||||||
|
Assert.Equal('z', select.First(a => "z1".First()));
|
||||||
|
}
|
||||||
|
[Fact]
|
||||||
|
public void FirstOrDefault()
|
||||||
|
{
|
||||||
|
Assert.Equal('x', select.First(a => "x1".FirstOrDefault()));
|
||||||
|
Assert.Equal('z', select.First(a => "z1".FirstOrDefault()));
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void Format()
|
public void Format()
|
||||||
{
|
{
|
||||||
|
@ -50,6 +50,19 @@ namespace FreeSql.Tests.Odbc.DamengExpression
|
|||||||
list.Add(g.dameng.Select<TestEqualsGuid>().Where(a => a.id.Equals(Guid.Empty)).ToList());
|
list.Add(g.dameng.Select<TestEqualsGuid>().Where(a => a.id.Equals(Guid.Empty)).ToList());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void First()
|
||||||
|
{
|
||||||
|
Assert.Equal('x', select.First(a => "x1".First()));
|
||||||
|
Assert.Equal('z', select.First(a => "z1".First()));
|
||||||
|
}
|
||||||
|
[Fact]
|
||||||
|
public void FirstOrDefault()
|
||||||
|
{
|
||||||
|
Assert.Equal('x', select.First(a => "x1".FirstOrDefault()));
|
||||||
|
Assert.Equal('z', select.First(a => "z1".FirstOrDefault()));
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void Format()
|
public void Format()
|
||||||
{
|
{
|
||||||
|
@ -50,6 +50,19 @@ namespace FreeSql.Tests.Odbc.DefaultExpression
|
|||||||
list.Add(g.odbc.Select<TestEqualsGuid>().Where(a => a.id.Equals(Guid.Empty)).ToList());
|
list.Add(g.odbc.Select<TestEqualsGuid>().Where(a => a.id.Equals(Guid.Empty)).ToList());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void First()
|
||||||
|
{
|
||||||
|
Assert.Equal('x', select.First(a => "x1".First()));
|
||||||
|
Assert.Equal('z', select.First(a => "z1".First()));
|
||||||
|
}
|
||||||
|
[Fact]
|
||||||
|
public void FirstOrDefault()
|
||||||
|
{
|
||||||
|
Assert.Equal('x', select.First(a => "x1".FirstOrDefault()));
|
||||||
|
Assert.Equal('z', select.First(a => "z1".FirstOrDefault()));
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void Empty()
|
public void Empty()
|
||||||
{
|
{
|
||||||
|
@ -50,6 +50,19 @@ namespace FreeSql.Tests.Odbc.KingbaseESExpression
|
|||||||
list.Add(g.kingbaseES.Select<TestEqualsGuid>().Where(a => a.id.Equals(Guid.Empty)).ToList());
|
list.Add(g.kingbaseES.Select<TestEqualsGuid>().Where(a => a.id.Equals(Guid.Empty)).ToList());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void First()
|
||||||
|
{
|
||||||
|
Assert.Equal('x', select.First(a => "x1".First()));
|
||||||
|
Assert.Equal('z', select.First(a => "z1".First()));
|
||||||
|
}
|
||||||
|
[Fact]
|
||||||
|
public void FirstOrDefault()
|
||||||
|
{
|
||||||
|
Assert.Equal('x', select.First(a => "x1".FirstOrDefault()));
|
||||||
|
Assert.Equal('z', select.First(a => "z1".FirstOrDefault()));
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void Format()
|
public void Format()
|
||||||
{
|
{
|
||||||
|
@ -52,6 +52,19 @@ namespace FreeSql.Tests.Odbc.MySqlExpression
|
|||||||
list.Add(g.mysql.Select<TestEqualsGuid>().Where(a => a.IsDeleted.Equals(false)).ToList());
|
list.Add(g.mysql.Select<TestEqualsGuid>().Where(a => a.IsDeleted.Equals(false)).ToList());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void First()
|
||||||
|
{
|
||||||
|
Assert.Equal('x', select.First(a => "x1".First()));
|
||||||
|
Assert.Equal('z', select.First(a => "z1".First()));
|
||||||
|
}
|
||||||
|
[Fact]
|
||||||
|
public void FirstOrDefault()
|
||||||
|
{
|
||||||
|
Assert.Equal('x', select.First(a => "x1".FirstOrDefault()));
|
||||||
|
Assert.Equal('z', select.First(a => "z1".FirstOrDefault()));
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void Format()
|
public void Format()
|
||||||
{
|
{
|
||||||
|
@ -50,6 +50,19 @@ namespace FreeSql.Tests.Odbc.OracleExpression
|
|||||||
list.Add(g.oracle.Select<TestEqualsGuid>().Where(a => a.id.Equals(Guid.Empty)).ToList());
|
list.Add(g.oracle.Select<TestEqualsGuid>().Where(a => a.id.Equals(Guid.Empty)).ToList());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void First()
|
||||||
|
{
|
||||||
|
Assert.Equal('x', select.First(a => "x1".First()));
|
||||||
|
Assert.Equal('z', select.First(a => "z1".First()));
|
||||||
|
}
|
||||||
|
[Fact]
|
||||||
|
public void FirstOrDefault()
|
||||||
|
{
|
||||||
|
Assert.Equal('x', select.First(a => "x1".FirstOrDefault()));
|
||||||
|
Assert.Equal('z', select.First(a => "z1".FirstOrDefault()));
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void Format()
|
public void Format()
|
||||||
{
|
{
|
||||||
|
@ -50,6 +50,19 @@ namespace FreeSql.Tests.Odbc.PostgreSQLExpression
|
|||||||
list.Add(g.pgsql.Select<TestEqualsGuid>().Where(a => a.id.Equals(Guid.Empty)).ToList());
|
list.Add(g.pgsql.Select<TestEqualsGuid>().Where(a => a.id.Equals(Guid.Empty)).ToList());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void First()
|
||||||
|
{
|
||||||
|
Assert.Equal('x', select.First(a => "x1".First()));
|
||||||
|
Assert.Equal('z', select.First(a => "z1".First()));
|
||||||
|
}
|
||||||
|
[Fact]
|
||||||
|
public void FirstOrDefault()
|
||||||
|
{
|
||||||
|
Assert.Equal('x', select.First(a => "x1".FirstOrDefault()));
|
||||||
|
Assert.Equal('z', select.First(a => "z1".FirstOrDefault()));
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void Format()
|
public void Format()
|
||||||
{
|
{
|
||||||
|
@ -51,6 +51,19 @@ namespace FreeSql.Tests.Odbc.SqlServerExpression
|
|||||||
list.Add(g.sqlserver.Select<TestEqualsGuid>().Where(a => a.id.Equals(Guid.Empty)).ToList());
|
list.Add(g.sqlserver.Select<TestEqualsGuid>().Where(a => a.id.Equals(Guid.Empty)).ToList());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void First()
|
||||||
|
{
|
||||||
|
Assert.Equal('x', select.First(a => "x1".First()));
|
||||||
|
Assert.Equal('z', select.First(a => "z1".First()));
|
||||||
|
}
|
||||||
|
[Fact]
|
||||||
|
public void FirstOrDefault()
|
||||||
|
{
|
||||||
|
Assert.Equal('x', select.First(a => "x1".FirstOrDefault()));
|
||||||
|
Assert.Equal('z', select.First(a => "z1".FirstOrDefault()));
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void Format()
|
public void Format()
|
||||||
{
|
{
|
||||||
|
@ -50,6 +50,19 @@ namespace FreeSql.Tests.DamengExpression
|
|||||||
list.Add(g.dameng.Select<TestEqualsGuid>().Where(a => a.id.Equals(Guid.Empty)).ToList());
|
list.Add(g.dameng.Select<TestEqualsGuid>().Where(a => a.id.Equals(Guid.Empty)).ToList());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void First()
|
||||||
|
{
|
||||||
|
Assert.Equal('x', select.First(a => "x1".First()));
|
||||||
|
Assert.Equal('z', select.First(a => "z1".First()));
|
||||||
|
}
|
||||||
|
[Fact]
|
||||||
|
public void FirstOrDefault()
|
||||||
|
{
|
||||||
|
Assert.Equal('x', select.First(a => "x1".FirstOrDefault()));
|
||||||
|
Assert.Equal('z', select.First(a => "z1".FirstOrDefault()));
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void Format()
|
public void Format()
|
||||||
{
|
{
|
||||||
|
@ -42,7 +42,7 @@ namespace FreeSql.Tests.DataContext.SqlServer
|
|||||||
"TestTypeParentInfo23123", "xxdkdkdk1222", "xxx"};
|
"TestTypeParentInfo23123", "xxdkdkdk1222", "xxx"};
|
||||||
foreach (var tempTable in tempTables)
|
foreach (var tempTable in tempTables)
|
||||||
{
|
{
|
||||||
DeleteTmpTable(dataTables, tempTable);
|
//DeleteTmpTable(dataTables, tempTable);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -50,6 +50,19 @@ namespace FreeSql.Tests.MsAccessExpression
|
|||||||
list.Add(g.msaccess.Select<TestEqualsGuid>().Where(a => a.id.Equals(Guid.Empty)).ToList());
|
list.Add(g.msaccess.Select<TestEqualsGuid>().Where(a => a.id.Equals(Guid.Empty)).ToList());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void First()
|
||||||
|
{
|
||||||
|
Assert.Equal('x', select.First(a => "x1".First()));
|
||||||
|
Assert.Equal('z', select.First(a => "z1".First()));
|
||||||
|
}
|
||||||
|
[Fact]
|
||||||
|
public void FirstOrDefault()
|
||||||
|
{
|
||||||
|
Assert.Equal('x', select.First(a => "x1".FirstOrDefault()));
|
||||||
|
Assert.Equal('z', select.First(a => "z1".FirstOrDefault()));
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void Format()
|
public void Format()
|
||||||
{
|
{
|
||||||
|
@ -52,6 +52,19 @@ namespace FreeSql.Tests.MySqlExpression
|
|||||||
list.Add(g.mysql.Select<TestEqualsGuid>().Where(a => a.IsDeleted.Equals(false)).ToList());
|
list.Add(g.mysql.Select<TestEqualsGuid>().Where(a => a.IsDeleted.Equals(false)).ToList());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void First()
|
||||||
|
{
|
||||||
|
Assert.Equal('x', select.First(a => "x1".First()));
|
||||||
|
Assert.Equal('z', select.First(a => "z1".First()));
|
||||||
|
}
|
||||||
|
[Fact]
|
||||||
|
public void FirstOrDefault()
|
||||||
|
{
|
||||||
|
Assert.Equal('x', select.First(a => "x1".FirstOrDefault()));
|
||||||
|
Assert.Equal('z', select.First(a => "z1".FirstOrDefault()));
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void Format()
|
public void Format()
|
||||||
{
|
{
|
||||||
|
@ -50,6 +50,19 @@ namespace FreeSql.Tests.OracleExpression
|
|||||||
list.Add(g.oracle.Select<TestEqualsGuid>().Where(a => a.id.Equals(Guid.Empty)).ToList());
|
list.Add(g.oracle.Select<TestEqualsGuid>().Where(a => a.id.Equals(Guid.Empty)).ToList());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void First()
|
||||||
|
{
|
||||||
|
Assert.Equal('x', select.First(a => "x1".First()));
|
||||||
|
Assert.Equal('z', select.First(a => "z1".First()));
|
||||||
|
}
|
||||||
|
[Fact]
|
||||||
|
public void FirstOrDefault()
|
||||||
|
{
|
||||||
|
Assert.Equal('x', select.First(a => "x1".FirstOrDefault()));
|
||||||
|
Assert.Equal('z', select.First(a => "z1".FirstOrDefault()));
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void Format()
|
public void Format()
|
||||||
{
|
{
|
||||||
|
@ -50,6 +50,19 @@ namespace FreeSql.Tests.PostgreSQLExpression
|
|||||||
list.Add(g.pgsql.Select<TestEqualsGuid>().Where(a => a.id.Equals(Guid.Empty)).ToList());
|
list.Add(g.pgsql.Select<TestEqualsGuid>().Where(a => a.id.Equals(Guid.Empty)).ToList());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void First()
|
||||||
|
{
|
||||||
|
Assert.Equal('x', select.First(a => "x1".First()));
|
||||||
|
Assert.Equal('z', select.First(a => "z1".First()));
|
||||||
|
}
|
||||||
|
[Fact]
|
||||||
|
public void FirstOrDefault()
|
||||||
|
{
|
||||||
|
Assert.Equal('x', select.First(a => "x1".FirstOrDefault()));
|
||||||
|
Assert.Equal('z', select.First(a => "z1".FirstOrDefault()));
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void Format()
|
public void Format()
|
||||||
{
|
{
|
||||||
|
@ -50,6 +50,19 @@ namespace FreeSql.Tests.ShenTongExpression
|
|||||||
list.Add(g.shentong.Select<TestEqualsGuid>().Where(a => a.id.Equals(Guid.Empty)).ToList());
|
list.Add(g.shentong.Select<TestEqualsGuid>().Where(a => a.id.Equals(Guid.Empty)).ToList());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void First()
|
||||||
|
{
|
||||||
|
Assert.Equal('x', select.First(a => "x1".First()));
|
||||||
|
Assert.Equal('z', select.First(a => "z1".First()));
|
||||||
|
}
|
||||||
|
[Fact]
|
||||||
|
public void FirstOrDefault()
|
||||||
|
{
|
||||||
|
Assert.Equal('x', select.First(a => "x1".FirstOrDefault()));
|
||||||
|
Assert.Equal('z', select.First(a => "z1".FirstOrDefault()));
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void Format()
|
public void Format()
|
||||||
{
|
{
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
using FreeSql.DataAnnotations;
|
using FreeSql.DataAnnotations;
|
||||||
using FreeSql.Tests.DataContext.SqlServer;
|
using FreeSql.Tests.DataContext.SqlServer;
|
||||||
|
using Microsoft.EntityFrameworkCore.Internal;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
@ -65,6 +66,19 @@ namespace FreeSql.Tests.SqlServerExpression
|
|||||||
list.Add(select.Where(a => a.TitleVarchar == "aaa").ToList());
|
list.Add(select.Where(a => a.TitleVarchar == "aaa").ToList());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void First()
|
||||||
|
{
|
||||||
|
Assert.Equal('x', select.First(a => "x1".First()));
|
||||||
|
Assert.Equal('z', select.First(a => "z1".First()));
|
||||||
|
}
|
||||||
|
[Fact]
|
||||||
|
public void FirstOrDefault()
|
||||||
|
{
|
||||||
|
Assert.Equal('x', select.First(a => "x1".FirstOrDefault()));
|
||||||
|
Assert.Equal('z', select.First(a => "z1".FirstOrDefault()));
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void Format()
|
public void Format()
|
||||||
{
|
{
|
||||||
|
@ -50,6 +50,19 @@ namespace FreeSql.Tests.SqliteExpression
|
|||||||
list.Add(g.sqlite.Select<TestEqualsGuid>().Where(a => a.id.Equals(Guid.Empty)).ToList());
|
list.Add(g.sqlite.Select<TestEqualsGuid>().Where(a => a.id.Equals(Guid.Empty)).ToList());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void First()
|
||||||
|
{
|
||||||
|
Assert.Equal('x', select.First(a => "x1".First()));
|
||||||
|
Assert.Equal('z', select.First(a => "z1".First()));
|
||||||
|
}
|
||||||
|
[Fact]
|
||||||
|
public void FirstOrDefault()
|
||||||
|
{
|
||||||
|
Assert.Equal('x', select.First(a => "x1".FirstOrDefault()));
|
||||||
|
Assert.Equal('z', select.First(a => "z1".FirstOrDefault()));
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void Format()
|
public void Format()
|
||||||
{
|
{
|
||||||
|
@ -41,6 +41,7 @@ namespace FreeSql.Internal
|
|||||||
field.Append(", ").Append(parent.DbField);
|
field.Append(", ").Append(parent.DbField);
|
||||||
if (index >= 0) field.Append(_common.FieldAsAlias($"as{++index}"));
|
if (index >= 0) field.Append(_common.FieldAsAlias($"as{++index}"));
|
||||||
else if (index == ReadAnonymousFieldAsCsName && string.IsNullOrEmpty(parent.CsName) == false) field.Append(_common.FieldAsAlias(parent.CsName));
|
else if (index == ReadAnonymousFieldAsCsName && string.IsNullOrEmpty(parent.CsName) == false) field.Append(_common.FieldAsAlias(parent.CsName));
|
||||||
|
if (parent.CsType == null) parent.CsType = exp.Type;
|
||||||
return false;
|
return false;
|
||||||
case ExpressionType.Convert: return ReadAnonymousField(_tables, field, parent, ref index, (exp as UnaryExpression)?.Operand, getSelectGroupingMapString, whereCascadeExpression, isAllDtoMap);
|
case ExpressionType.Convert: return ReadAnonymousField(_tables, field, parent, ref index, (exp as UnaryExpression)?.Operand, getSelectGroupingMapString, whereCascadeExpression, isAllDtoMap);
|
||||||
case ExpressionType.Constant:
|
case ExpressionType.Constant:
|
||||||
@ -60,6 +61,7 @@ namespace FreeSql.Internal
|
|||||||
field.Append(", ").Append(parent.DbField);
|
field.Append(", ").Append(parent.DbField);
|
||||||
if (index >= 0) field.Append(_common.FieldAsAlias($"as{++index}"));
|
if (index >= 0) field.Append(_common.FieldAsAlias($"as{++index}"));
|
||||||
else if (index == ReadAnonymousFieldAsCsName && string.IsNullOrEmpty(parent.CsName) == false) field.Append(_common.FieldAsAlias(parent.CsName));
|
else if (index == ReadAnonymousFieldAsCsName && string.IsNullOrEmpty(parent.CsName) == false) field.Append(_common.FieldAsAlias(parent.CsName));
|
||||||
|
if (parent.CsType == null) parent.CsType = exp.Type;
|
||||||
return false;
|
return false;
|
||||||
case ExpressionType.Call:
|
case ExpressionType.Call:
|
||||||
var callExp = exp as MethodCallExpression;
|
var callExp = exp as MethodCallExpression;
|
||||||
@ -77,6 +79,7 @@ namespace FreeSql.Internal
|
|||||||
field.Append(", ").Append(parent.DbField);
|
field.Append(", ").Append(parent.DbField);
|
||||||
if (index >= 0) field.Append(_common.FieldAsAlias($"as{++index}"));
|
if (index >= 0) field.Append(_common.FieldAsAlias($"as{++index}"));
|
||||||
else if (index == ReadAnonymousFieldAsCsName && string.IsNullOrEmpty(parent.CsName) == false) field.Append(_common.FieldAsAlias(parent.CsName));
|
else if (index == ReadAnonymousFieldAsCsName && string.IsNullOrEmpty(parent.CsName) == false) field.Append(_common.FieldAsAlias(parent.CsName));
|
||||||
|
if (parent.CsType == null) parent.CsType = exp.Type;
|
||||||
return false;
|
return false;
|
||||||
case ExpressionType.Parameter:
|
case ExpressionType.Parameter:
|
||||||
case ExpressionType.MemberAccess:
|
case ExpressionType.MemberAccess:
|
||||||
@ -262,6 +265,7 @@ namespace FreeSql.Internal
|
|||||||
field.Append(", ").Append(parent.DbField);
|
field.Append(", ").Append(parent.DbField);
|
||||||
if (index >= 0) field.Append(_common.FieldAsAlias($"as{++index}"));
|
if (index >= 0) field.Append(_common.FieldAsAlias($"as{++index}"));
|
||||||
else if (index == ReadAnonymousFieldAsCsName && string.IsNullOrEmpty(parent.CsName) == false) field.Append(_common.FieldAsAlias(parent.CsName));
|
else if (index == ReadAnonymousFieldAsCsName && string.IsNullOrEmpty(parent.CsName) == false) field.Append(_common.FieldAsAlias(parent.CsName));
|
||||||
|
if (parent.CsType == null) parent.CsType = exp.Type;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
public object ReadAnonymous(ReadAnonymousTypeInfo parent, DbDataReader dr, ref int index, bool notRead, ReadAnonymousDbValueRef dbValue)
|
public object ReadAnonymous(ReadAnonymousTypeInfo parent, DbDataReader dr, ref int index, bool notRead, ReadAnonymousDbValueRef dbValue)
|
||||||
|
@ -100,6 +100,16 @@ namespace FreeSql.Dameng
|
|||||||
objExp = callExp.Arguments.FirstOrDefault();
|
objExp = callExp.Arguments.FirstOrDefault();
|
||||||
objType = objExp?.Type;
|
objType = objExp?.Type;
|
||||||
argIndex++;
|
argIndex++;
|
||||||
|
|
||||||
|
if (objType == typeof(string))
|
||||||
|
{
|
||||||
|
switch (callExp.Method.Name)
|
||||||
|
{
|
||||||
|
case "First":
|
||||||
|
case "FirstOrDefault":
|
||||||
|
return $"substr({getExp(callExp.Arguments[0])}, 1, 1)";
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (objType == null) objType = callExp.Method.DeclaringType;
|
if (objType == null) objType = callExp.Method.DeclaringType;
|
||||||
if (objType != null || objType.IsArrayOrList())
|
if (objType != null || objType.IsArrayOrList())
|
||||||
|
@ -70,6 +70,16 @@ namespace FreeSql.MsAccess
|
|||||||
objExp = callExp.Arguments.FirstOrDefault();
|
objExp = callExp.Arguments.FirstOrDefault();
|
||||||
objType = objExp?.Type;
|
objType = objExp?.Type;
|
||||||
argIndex++;
|
argIndex++;
|
||||||
|
|
||||||
|
if (objType == typeof(string))
|
||||||
|
{
|
||||||
|
switch (callExp.Method.Name)
|
||||||
|
{
|
||||||
|
case "First":
|
||||||
|
case "FirstOrDefault":
|
||||||
|
return $"left({getExp(callExp.Arguments[0])}, 1)";
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (objType == null) objType = callExp.Method.DeclaringType;
|
if (objType == null) objType = callExp.Method.DeclaringType;
|
||||||
if (objType != null || objType.IsArrayOrList())
|
if (objType != null || objType.IsArrayOrList())
|
||||||
|
@ -98,6 +98,16 @@ namespace FreeSql.MySql
|
|||||||
objExp = callExp.Arguments.FirstOrDefault();
|
objExp = callExp.Arguments.FirstOrDefault();
|
||||||
objType = objExp?.Type;
|
objType = objExp?.Type;
|
||||||
argIndex++;
|
argIndex++;
|
||||||
|
|
||||||
|
if (objType == typeof(string))
|
||||||
|
{
|
||||||
|
switch (callExp.Method.Name)
|
||||||
|
{
|
||||||
|
case "First":
|
||||||
|
case "FirstOrDefault":
|
||||||
|
return $"substr({getExp(callExp.Arguments[0])}, 1, 1)";
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (objType == null) objType = callExp.Method.DeclaringType;
|
if (objType == null) objType = callExp.Method.DeclaringType;
|
||||||
if (objType != null || objType.IsArrayOrList())
|
if (objType != null || objType.IsArrayOrList())
|
||||||
|
@ -100,6 +100,16 @@ namespace FreeSql.Odbc.Dameng
|
|||||||
objExp = callExp.Arguments.FirstOrDefault();
|
objExp = callExp.Arguments.FirstOrDefault();
|
||||||
objType = objExp?.Type;
|
objType = objExp?.Type;
|
||||||
argIndex++;
|
argIndex++;
|
||||||
|
|
||||||
|
if (objType == typeof(string))
|
||||||
|
{
|
||||||
|
switch (callExp.Method.Name)
|
||||||
|
{
|
||||||
|
case "First":
|
||||||
|
case "FirstOrDefault":
|
||||||
|
return $"substr({getExp(callExp.Arguments[0])}, 1, 1)";
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (objType == null) objType = callExp.Method.DeclaringType;
|
if (objType == null) objType = callExp.Method.DeclaringType;
|
||||||
if (objType != null || objType.IsArrayOrList())
|
if (objType != null || objType.IsArrayOrList())
|
||||||
|
@ -104,6 +104,16 @@ namespace FreeSql.Odbc.Default
|
|||||||
objExp = callExp.Arguments.FirstOrDefault();
|
objExp = callExp.Arguments.FirstOrDefault();
|
||||||
objType = objExp?.Type;
|
objType = objExp?.Type;
|
||||||
argIndex++;
|
argIndex++;
|
||||||
|
|
||||||
|
if (objType == typeof(string))
|
||||||
|
{
|
||||||
|
switch (callExp.Method.Name)
|
||||||
|
{
|
||||||
|
case "First":
|
||||||
|
case "FirstOrDefault":
|
||||||
|
return _utils.Adapter.LambdaString_Substring(getExp(callExp.Arguments[0]), "1", "1");
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (objType == null) objType = callExp.Method.DeclaringType;
|
if (objType == null) objType = callExp.Method.DeclaringType;
|
||||||
if (objType != null || objType.IsArrayOrList())
|
if (objType != null || objType.IsArrayOrList())
|
||||||
|
@ -101,6 +101,16 @@ namespace FreeSql.Odbc.KingbaseES
|
|||||||
objExp = callExp.Arguments.FirstOrDefault();
|
objExp = callExp.Arguments.FirstOrDefault();
|
||||||
objType = objExp?.Type;
|
objType = objExp?.Type;
|
||||||
argIndex++;
|
argIndex++;
|
||||||
|
|
||||||
|
if (objType == typeof(string))
|
||||||
|
{
|
||||||
|
switch (callExp.Method.Name)
|
||||||
|
{
|
||||||
|
case "First":
|
||||||
|
case "FirstOrDefault":
|
||||||
|
return $"substr({getExp(callExp.Arguments[0])}, 1, 1)";
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (objType == null) objType = callExp.Method.DeclaringType;
|
if (objType == null) objType = callExp.Method.DeclaringType;
|
||||||
if (objType != null || objType.IsArrayOrList())
|
if (objType != null || objType.IsArrayOrList())
|
||||||
|
@ -96,6 +96,16 @@ namespace FreeSql.Odbc.MySql
|
|||||||
objExp = callExp.Arguments.FirstOrDefault();
|
objExp = callExp.Arguments.FirstOrDefault();
|
||||||
objType = objExp?.Type;
|
objType = objExp?.Type;
|
||||||
argIndex++;
|
argIndex++;
|
||||||
|
|
||||||
|
if (objType == typeof(string))
|
||||||
|
{
|
||||||
|
switch (callExp.Method.Name)
|
||||||
|
{
|
||||||
|
case "First":
|
||||||
|
case "FirstOrDefault":
|
||||||
|
return $"substr({getExp(callExp.Arguments[0])}, 1, 1)";
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (objType == null) objType = callExp.Method.DeclaringType;
|
if (objType == null) objType = callExp.Method.DeclaringType;
|
||||||
if (objType != null || objType.IsArrayOrList())
|
if (objType != null || objType.IsArrayOrList())
|
||||||
|
@ -100,6 +100,16 @@ namespace FreeSql.Odbc.Oracle
|
|||||||
objExp = callExp.Arguments.FirstOrDefault();
|
objExp = callExp.Arguments.FirstOrDefault();
|
||||||
objType = objExp?.Type;
|
objType = objExp?.Type;
|
||||||
argIndex++;
|
argIndex++;
|
||||||
|
|
||||||
|
if (objType == typeof(string))
|
||||||
|
{
|
||||||
|
switch (callExp.Method.Name)
|
||||||
|
{
|
||||||
|
case "First":
|
||||||
|
case "FirstOrDefault":
|
||||||
|
return $"substr({getExp(callExp.Arguments[0])}, 1, 1)";
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (objType == null) objType = callExp.Method.DeclaringType;
|
if (objType == null) objType = callExp.Method.DeclaringType;
|
||||||
if (objType != null || objType.IsArrayOrList())
|
if (objType != null || objType.IsArrayOrList())
|
||||||
|
@ -101,6 +101,16 @@ namespace FreeSql.Odbc.PostgreSQL
|
|||||||
objExp = callExp.Arguments.FirstOrDefault();
|
objExp = callExp.Arguments.FirstOrDefault();
|
||||||
objType = objExp?.Type;
|
objType = objExp?.Type;
|
||||||
argIndex++;
|
argIndex++;
|
||||||
|
|
||||||
|
if (objType == typeof(string))
|
||||||
|
{
|
||||||
|
switch (callExp.Method.Name)
|
||||||
|
{
|
||||||
|
case "First":
|
||||||
|
case "FirstOrDefault":
|
||||||
|
return $"substr({getExp(callExp.Arguments[0])}, 1, 1)";
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (objType == null) objType = callExp.Method.DeclaringType;
|
if (objType == null) objType = callExp.Method.DeclaringType;
|
||||||
if (objType != null || objType.IsArrayOrList())
|
if (objType != null || objType.IsArrayOrList())
|
||||||
|
@ -106,6 +106,16 @@ namespace FreeSql.Odbc.SqlServer
|
|||||||
objExp = callExp.Arguments.FirstOrDefault();
|
objExp = callExp.Arguments.FirstOrDefault();
|
||||||
objType = objExp?.Type;
|
objType = objExp?.Type;
|
||||||
argIndex++;
|
argIndex++;
|
||||||
|
|
||||||
|
if (objType == typeof(string))
|
||||||
|
{
|
||||||
|
switch (callExp.Method.Name)
|
||||||
|
{
|
||||||
|
case "First":
|
||||||
|
case "FirstOrDefault":
|
||||||
|
return $"substr({getExp(callExp.Arguments[0])}, 1, 1)";
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (objType == null) objType = callExp.Method.DeclaringType;
|
if (objType == null) objType = callExp.Method.DeclaringType;
|
||||||
if (objType != null || objType.IsArrayOrList())
|
if (objType != null || objType.IsArrayOrList())
|
||||||
|
@ -100,6 +100,16 @@ namespace FreeSql.Oracle
|
|||||||
objExp = callExp.Arguments.FirstOrDefault();
|
objExp = callExp.Arguments.FirstOrDefault();
|
||||||
objType = objExp?.Type;
|
objType = objExp?.Type;
|
||||||
argIndex++;
|
argIndex++;
|
||||||
|
|
||||||
|
if (objType == typeof(string))
|
||||||
|
{
|
||||||
|
switch (callExp.Method.Name)
|
||||||
|
{
|
||||||
|
case "First":
|
||||||
|
case "FirstOrDefault":
|
||||||
|
return $"substr({getExp(callExp.Arguments[0])}, 1, 1)";
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (objType == null) objType = callExp.Method.DeclaringType;
|
if (objType == null) objType = callExp.Method.DeclaringType;
|
||||||
if (objType != null || objType.IsArrayOrList())
|
if (objType != null || objType.IsArrayOrList())
|
||||||
|
@ -102,6 +102,16 @@ namespace FreeSql.PostgreSQL
|
|||||||
objExp = callExp.Arguments.FirstOrDefault();
|
objExp = callExp.Arguments.FirstOrDefault();
|
||||||
objType = objExp?.Type;
|
objType = objExp?.Type;
|
||||||
argIndex++;
|
argIndex++;
|
||||||
|
|
||||||
|
if (objType == typeof(string))
|
||||||
|
{
|
||||||
|
switch (callExp.Method.Name)
|
||||||
|
{
|
||||||
|
case "First":
|
||||||
|
case "FirstOrDefault":
|
||||||
|
return $"substr({getExp(callExp.Arguments[0])}, 1, 1)";
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (objType == null) objType = callExp.Method.DeclaringType;
|
if (objType == null) objType = callExp.Method.DeclaringType;
|
||||||
if (objType != null || objType.IsArrayOrList())
|
if (objType != null || objType.IsArrayOrList())
|
||||||
|
@ -101,6 +101,16 @@ namespace FreeSql.ShenTong
|
|||||||
objExp = callExp.Arguments.FirstOrDefault();
|
objExp = callExp.Arguments.FirstOrDefault();
|
||||||
objType = objExp?.Type;
|
objType = objExp?.Type;
|
||||||
argIndex++;
|
argIndex++;
|
||||||
|
|
||||||
|
if (objType == typeof(string))
|
||||||
|
{
|
||||||
|
switch (callExp.Method.Name)
|
||||||
|
{
|
||||||
|
case "First":
|
||||||
|
case "FirstOrDefault":
|
||||||
|
return $"substr({getExp(callExp.Arguments[0])}, 1, 1)";
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (objType == null) objType = callExp.Method.DeclaringType;
|
if (objType == null) objType = callExp.Method.DeclaringType;
|
||||||
if (objType != null || objType.IsArrayOrList())
|
if (objType != null || objType.IsArrayOrList())
|
||||||
|
@ -105,6 +105,16 @@ namespace FreeSql.SqlServer
|
|||||||
objExp = callExp.Arguments.FirstOrDefault();
|
objExp = callExp.Arguments.FirstOrDefault();
|
||||||
objType = objExp?.Type;
|
objType = objExp?.Type;
|
||||||
argIndex++;
|
argIndex++;
|
||||||
|
|
||||||
|
if (objType == typeof(string))
|
||||||
|
{
|
||||||
|
switch (callExp.Method.Name)
|
||||||
|
{
|
||||||
|
case "First":
|
||||||
|
case "FirstOrDefault":
|
||||||
|
return $"substring({getExp(callExp.Arguments[0])}, 1, 1)";
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (objType == null) objType = callExp.Method.DeclaringType;
|
if (objType == null) objType = callExp.Method.DeclaringType;
|
||||||
if (objType != null || objType.IsArrayOrList())
|
if (objType != null || objType.IsArrayOrList())
|
||||||
|
@ -96,6 +96,16 @@ namespace FreeSql.Sqlite
|
|||||||
objExp = callExp.Arguments.FirstOrDefault();
|
objExp = callExp.Arguments.FirstOrDefault();
|
||||||
objType = objExp?.Type;
|
objType = objExp?.Type;
|
||||||
argIndex++;
|
argIndex++;
|
||||||
|
|
||||||
|
if (objType == typeof(string))
|
||||||
|
{
|
||||||
|
switch (callExp.Method.Name)
|
||||||
|
{
|
||||||
|
case "First":
|
||||||
|
case "FirstOrDefault":
|
||||||
|
return $"substr({getExp(callExp.Arguments[0])}, 1, 1)";
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (objType == null) objType = callExp.Method.DeclaringType;
|
if (objType == null) objType = callExp.Method.DeclaringType;
|
||||||
if (objType != null || objType.IsArrayOrList())
|
if (objType != null || objType.IsArrayOrList())
|
||||||
|
Loading…
x
Reference in New Issue
Block a user