TPH EF6.0:无法计算表达式的值

本文关键字:计算 表达式 EF6 TPH | 更新日期: 2023-09-27 17:56:40

我有 3 个从抽象基类继承的类:

abstract class PortTaskStep{
    public Guid TaskID { get; set; }
    [ForeignKey("TaskID")]
    public virtual PortChangeTask PortChangeTask { get; set; }
    public virtual String CompleteStep() { return string.Empty;}
}
class PortTaskStep_Add:TaskStep{}
class PortTaskStep_Modify:TaskStep{}
class PortTaskStep_Delete:TaskStep{}
public class HncNetScanContext : DbContext
{
    public DbSet<PortTaskStep> PortTaskSteps { get; set; }
}

当我尝试从表"端口任务步骤"中获取数据时,查询返回:

cannot calculate the value of the expression

更多细节:

public class PortChangeTask{
   public ICollection<PortTaskStep> PortTaskSteps { get; set; }
   public Boolean CompleteTask(){
     foreach (var portTaskStep in PortTaskSteps)
     {
       portTaskStep.CompleteStep();
     }
   }
}

域程序集包含上述由 Web 项目和网站引用的类。当我在网站上调试函数时,一切顺利。但是,当我在 Web 项目中调试相同的函数时,结果为 null。

快照

对于在 Web 项目中测试的另一个场景:如快照所示,我尝试获取"PortTaskSteps"。结果为空。但是,在我取消注释"textQuery"之后,结果是PortTaskStep的列表。

快照

我认为Web配置或Web项目的环境中出了点问题,但是,我无法弄清楚这一点:(

如何解决问题?

谢谢!

TPH EF6.0:无法计算表达式的值

也许正确的翻译可能是"无法评估表达式"。如果是这样,那么很可能是Visual Studio的问题。尝试从解决方案中删除所有断点,然后重新插入它们。如果这对您没有帮助,请检查此链接:Visual Studio 2013"无法评估表达式"调试器异常。

如果问题始终出现在检索数据和尝试在调试模式下查看数据时,则可能需要检查配置(可能您错过了映射或此表的重要内容)。