类型是一个“字段”,但它被用作“类型”
本文关键字:类型 一个 字段 | 更新日期: 2023-09-27 18:35:26
我在 c# 和实体框架中使用下一个代码时遇到了问题:
public ViewModuleBase() //constructor
{
_CurrentModel = (from Store in CurrentModelClass()
orderby Store.ID descending
select Store).FirstOrDefault();
}
Type AC_BaseClass = typeof(AC_BASE);
virtual protected DbSet<AC_BaseClass> CurrentModelClass() //error here on AC_BaseClass
{
return Entities.AC_BASE;
}
其中AC_BASE是我从中派生所有实体框架分部类的类,该代码不接受AC_BaseClass作为类型,它说:AC_BaseClass是一个"字段",但它被用作"类型",知道如何解决问题吗?
不能将类型为 Type
的变量或字段用作泛型类型参数。代码必须直接使用 AC_BASE
:
virtual protected DbSet<AC_BASE> CurrentModelClass()
{
return null;
}
您尝试执行的操作类似于这个也不起作用的简化示例:
Type someType = typeof(int);
someType i = 1; // <<== This will not work
C# 不允许这种"间接寻址",当声明中的类型是通过变量提供的。您需要直接使用类型的名称。