类型是一个“字段”,但它被用作“类型”

本文关键字:类型 一个 字段 | 更新日期: 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# 不允许这种"间接寻址",当声明中的类型是通过变量提供的。您需要直接使用类型的名称。

相关文章: