.NET 6 错误:“Where”没有重载需要 2 个参数

问题描述 投票:0回答:1

下面的代码在 .NET Framework 4.6 中可以工作,但在 .NET 6 中不起作用 - 为什么?我如何解决它?在返回行上,编译器显示错误:

“Where”方法没有重载需要 2 个参数

在我的数据库中,每个表都继承自

ProgramObjects
表。
ProgramObjects
每条记录都有一个状态枚举列,为“活动”(1) 或“非活动”(2)。我使用继承,因此数据库中的每个表中都不需要
IsActive
列。此方法旨在返回任何表中的所有非活动记录。

private IList<T> GetInactiveRecords<T>()
{
     return ProgramObjects.OfType<T>()
                          .Where("StatusEnumeration = @0", StatusEnum.Inactive)
                          .ToList();
}

我研究了 Microsoft 网站上的文档,但我无法理解如何修复它。而且因为我的代码使用泛型,所以执行

Where
过滤器有点复杂。我也尝试使用字符串插值代替,但我也没有成功。

c# generics inheritance where-clause
1个回答
0
投票

你是对的,我缺少 System.Linq.Dynamic NuGet 包。感谢您的帮助。

© www.soinside.com 2019 - 2024. All rights reserved.