Skip to content

Commit 6b84bd7

Browse files
committed
- 修复 <object> + AsType + (a as BaseEntity) 解析问题;#1427
1 parent 6fedb20 commit 6b84bd7

File tree

3 files changed

+21
-11
lines changed

3 files changed

+21
-11
lines changed

FreeSql.DbContext/FreeSql.DbContext.xml

Lines changed: 0 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

FreeSql.Tests/FreeSql.Tests/SqlServer/Curd/SqlServerDeleteTest.cs

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
using FreeSql.DataAnnotations;
1+
using FreeSql.DataAnnotations;
22
using FreeSql.Tests.DataContext.SqlServer;
33
using System;
44
using System.Collections.Generic;
@@ -30,6 +30,25 @@ class Topic
3030
public DateTime CreateTime { get; set; }
3131
}
3232

33+
abstract class EntityBase
34+
{
35+
public int Id { get; set; }
36+
}
37+
class SysDictionnary : EntityBase
38+
{
39+
public string Name { get; set; }
40+
}
41+
[Fact]
42+
public void AsType()
43+
{
44+
var fsql = g.sqlserver;
45+
46+
var delsid = new[] { 1, 2, 3, 4 };
47+
var sqlsss22222 = fsql.Delete<object>().AsType(typeof(SysDictionnary))
48+
.Where(o => delsid.Contains((o as EntityBase).Id))
49+
.ToSql();
50+
}
51+
3352
[Fact]
3453
public void Dywhere()
3554
{

FreeSql/Internal/CommonExpression.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1748,7 +1748,7 @@ public string ExpressionLambdaToSql(Expression exp, ExpTSC tsc)
17481748
if (oper2.NodeType == ExpressionType.Parameter)
17491749
{
17501750
var oper2Parm = oper2 as ParameterExpression;
1751-
if (exp2.Type.IsAbstract || exp2.Type.IsInterface || exp2.Type.IsAssignableFrom(oper2Parm.Type))
1751+
if (oper2Parm.Type != typeof(object) && (exp2.Type.IsAbstract || exp2.Type.IsInterface || exp2.Type.IsAssignableFrom(oper2Parm.Type)))
17521752
expStack.Push(oper2Parm);
17531753
else if (oper2Parm.Type != typeof(object) && oper2Parm.Type.IsAssignableFrom(exp2.Type))
17541754
expStack.Push(oper2Parm);

0 commit comments

Comments
 (0)