From a45cfff5f696c4c51fa4455c29e5f4a0f8925739 Mon Sep 17 00:00:00 2001
From: 28810 <28810@YEXIANGQIN>
Date: Tue, 3 Mar 2020 12:36:44 +0800
Subject: [PATCH] =?UTF-8?q?-=20=E4=BF=AE=E5=A4=8D=20ToList=20=E7=88=B6?=
=?UTF-8?q?=E5=AD=90=E5=AF=BC=E8=88=AA=E5=8F=AF=E8=83=BD=E5=8C=B9=E9=85=8D?=
=?UTF-8?q?=E4=B8=8D=E6=AD=A3=E7=A1=AE=E7=9A=84=20bug=EF=BC=9B?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
FreeSql.Tests/FreeSql.Tests/FreeSql.Tests.xml | 50 +++++++
FreeSql.Tests/FreeSql.Tests/UnitTest3.cs | 94 +++++++++++++
FreeSql/FreeSql.xml | 131 ++++++++++++++++++
FreeSql/Internal/CommonExpression.cs | 3 +-
4 files changed, 277 insertions(+), 1 deletion(-)
diff --git a/FreeSql.Tests/FreeSql.Tests/FreeSql.Tests.xml b/FreeSql.Tests/FreeSql.Tests/FreeSql.Tests.xml
index d6732b50..6750270a 100644
--- a/FreeSql.Tests/FreeSql.Tests/FreeSql.Tests.xml
+++ b/FreeSql.Tests/FreeSql.Tests/FreeSql.Tests.xml
@@ -212,6 +212,56 @@
+
+
+ 父级
+
+
+
+
+ 创建人
+
+
+
+
+ 创建时间
+
+
+
+
+ 备注
+
+
+
+
+ 菜单名称
+
+
+
+
+ 英文名称
+
+
+
+
+ 链接地址
+
+
+
+
+ 父级菜单 一级为 0
+
+
+
+
+ 按钮操作 逗号分隔
+
+
+
+
+ 导航属性
+
+
调价单
diff --git a/FreeSql.Tests/FreeSql.Tests/UnitTest3.cs b/FreeSql.Tests/FreeSql.Tests/UnitTest3.cs
index c468a7a7..49ecb36e 100644
--- a/FreeSql.Tests/FreeSql.Tests/UnitTest3.cs
+++ b/FreeSql.Tests/FreeSql.Tests/UnitTest3.cs
@@ -44,9 +44,103 @@ namespace FreeSql.Tests
public DbSet Authors { get; set; }
}
+ ///
+ /// 父级
+ ///
+ public class BaseModel
+ {
+ [Column(IsPrimary = true)]
+ public string ID { get; set; }
+
+ ///
+ /// 创建人
+ ///
+ public string UserID { get; set; } = "Admin";
+
+ ///
+ /// 创建时间
+ ///
+ [Column(ServerTime = DateTimeKind.Utc)]
+ public DateTime CreateTime { get; set; }
+
+ ///
+ /// 备注
+ ///
+ public string Description { get; set; }
+ }
+ public class Menu : BaseModel
+ {
+ public string SubNameID { get; set; }
+
+ ///
+ /// 菜单名称
+ ///
+ public string Name { get; set; }
+
+ ///
+ /// 英文名称
+ ///
+ public string EnName { get; set; }
+
+ ///
+ /// 链接地址
+ ///
+ public string Url { get; set; }
+
+ ///
+ /// 父级菜单 一级为 0
+ ///
+ public string ParentID { get; set; }
+
+ ///
+ /// 按钮操作 逗号分隔
+ ///
+ public string OperationIds { get; set; }
+
+ ///
+ /// 导航属性
+ ///
+ public virtual Menu Parent { get; set; }
+
+
+ [Column(IsIgnore = true)]
+ public string OperationNames { get; set; }
+
+ [Column(IsIgnore = true)]
+ public string SystemName { get; set; }
+
+ }
+ class SubSystem
+ {
+ public string Id { get; set; }
+ public string Name { get; set; }
+ }
+
[Fact]
public void Test03()
{
+ var subSyetemId = "xxx";
+ var list = g.sqlite.Select
+
+
+ 查询,若使用读写分离,查询【从库】条件cmdText.StartsWith("SELECT "),否则查询【主库】
+
+
+
+
+
+
+
+
+ 查询,ExecuteReaderAsync(dr => {}, "select * from user where age > ?age", new { age = 25 })
+
+
+
+
+
+
+ 查询
+
+
+
+
+
+
+ 查询,ExecuteArrayAsync("select * from user where age > ?age", new { age = 25 })
+
+
+
+
+
+
+
+ 查询
+
+
+
+
+
+
+ 查询,ExecuteDataSetAsync("select * from user where age > ?age; select 2", new { age = 25 })
+
+
+
+
+
+
+
+ 查询
+
+
+
+
+
+
+ 查询,ExecuteDataTableAsync("select * from user where age > ?age", new { age = 25 })
+
+
+
+
+
+
+
+ 在【主库】执行
+
+
+
+
+
+
+
+ 在【主库】执行,ExecuteNonQueryAsync("delete from user where age > ?age", new { age = 25 })
+
+
+
+
+
+
+
+ 在【主库】执行
+
+
+
+
+
+
+
+ 在【主库】执行,ExecuteScalarAsync("select 1 from user where age > ?age", new { age = 25 })
+
+
+
+
+
+
+
+ 执行SQL返回对象集合,QueryAsync<User>("select * from user where age > ?age", new SqlParameter { ParameterName = "age", Value = 25 })
+
+
+
+
+
+
+
+
+
+ 执行SQL返回对象集合,QueryAsync<User>("select * from user where age > ?age", new { age = 25 })
+
+
+
+
+
+
+
+
+ 执行SQL返回对象集合,Query<User>("select * from user where age > ?age; select * from address", new SqlParameter { ParameterName = "age", Value = 25 })
+
+
+
+
+
+
+
+
+
+ 执行SQL返回对象集合,Query<User>("select * from user where age > ?age; select * from address", new { age = 25 })
+
+
+
+
+
+
可自定义解析表达式
diff --git a/FreeSql/Internal/CommonExpression.cs b/FreeSql/Internal/CommonExpression.cs
index 6a121cdb..f9e424d1 100644
--- a/FreeSql/Internal/CommonExpression.cs
+++ b/FreeSql/Internal/CommonExpression.cs
@@ -1140,7 +1140,8 @@ namespace FreeSql.Internal
if (tsc.style == ExpressionStyle.SelectColumns)
{
finds = tsc._tables.Where(a => a.Table.Type == tbtmp.Type && a.Alias == alias).ToArray();
- if (finds.Length != 1) finds = tsc._tables.Where(a => a.Table.Type == tbtmp.Type).ToArray();
+ if (finds.Any() == false && alias.Contains("__") == false)
+ finds = tsc._tables.Where(a => a.Table.Type == tbtmp.Type).ToArray();
if (finds.Any()) finds = new[] { finds.First() };
}
if (finds.Length != 1 && isa && parmExp != null)