下面的代码在 .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
过滤器有点复杂。我也尝试使用字符串插值代替,但我也没有成功。
你是对的,我缺少 System.Linq.Dynamic NuGet 包。感谢您的帮助。