From 6b84bd79ae4ea867ddd95f48b67c38eaea1e194d Mon Sep 17 00:00:00 2001 From: 2881099 <2881099@qq.com> Date: Tue, 23 May 2023 22:25:14 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E4=BF=AE=E5=A4=8D=20=20+=20AsType?= =?UTF-8?q?=20+=20(a=20as=20BaseEntity)=20=E8=A7=A3=E6=9E=90=E9=97=AE?= =?UTF-8?q?=E9=A2=98=EF=BC=9B#1427?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FreeSql.DbContext/FreeSql.DbContext.xml | 9 -------- .../SqlServer/Curd/SqlServerDeleteTest.cs | 21 ++++++++++++++++++- FreeSql/Internal/CommonExpression.cs | 2 +- 3 files changed, 21 insertions(+), 11 deletions(-) diff --git a/FreeSql.DbContext/FreeSql.DbContext.xml b/FreeSql.DbContext/FreeSql.DbContext.xml index 26522f10..537315e2 100644 --- a/FreeSql.DbContext/FreeSql.DbContext.xml +++ b/FreeSql.DbContext/FreeSql.DbContext.xml @@ -800,14 +800,5 @@ - - - 批量注入 Repository,可以参考代码自行调整 - - - - - - diff --git a/FreeSql.Tests/FreeSql.Tests/SqlServer/Curd/SqlServerDeleteTest.cs b/FreeSql.Tests/FreeSql.Tests/SqlServer/Curd/SqlServerDeleteTest.cs index d36d73e2..80a278da 100644 --- a/FreeSql.Tests/FreeSql.Tests/SqlServer/Curd/SqlServerDeleteTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/SqlServer/Curd/SqlServerDeleteTest.cs @@ -1,4 +1,4 @@ -using FreeSql.DataAnnotations; +using FreeSql.DataAnnotations; using FreeSql.Tests.DataContext.SqlServer; using System; using System.Collections.Generic; @@ -30,6 +30,25 @@ namespace FreeSql.Tests.SqlServer public DateTime CreateTime { get; set; } } + abstract class EntityBase + { + public int Id { get; set; } + } + class SysDictionnary : EntityBase + { + public string Name { get; set; } + } + [Fact] + public void AsType() + { + var fsql = g.sqlserver; + + var delsid = new[] { 1, 2, 3, 4 }; + var sqlsss22222 = fsql.Delete().AsType(typeof(SysDictionnary)) + .Where(o => delsid.Contains((o as EntityBase).Id)) + .ToSql(); + } + [Fact] public void Dywhere() { diff --git a/FreeSql/Internal/CommonExpression.cs b/FreeSql/Internal/CommonExpression.cs index e2795d65..3e73ea95 100644 --- a/FreeSql/Internal/CommonExpression.cs +++ b/FreeSql/Internal/CommonExpression.cs @@ -1748,7 +1748,7 @@ namespace FreeSql.Internal if (oper2.NodeType == ExpressionType.Parameter) { var oper2Parm = oper2 as ParameterExpression; - if (exp2.Type.IsAbstract || exp2.Type.IsInterface || exp2.Type.IsAssignableFrom(oper2Parm.Type)) + if (oper2Parm.Type != typeof(object) && (exp2.Type.IsAbstract || exp2.Type.IsInterface || exp2.Type.IsAssignableFrom(oper2Parm.Type))) expStack.Push(oper2Parm); else if (oper2Parm.Type != typeof(object) && oper2Parm.Type.IsAssignableFrom(exp2.Type)) expStack.Push(oper2Parm);