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

时间:2016-07-13 10:05:27

标签: c# tph

我有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; }
}

当我尝试从表&#39; PortTaskSteps&#39;中获取数据时,查询返回:

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站点引用。当我在网站上调试该功能时,一切顺利。但是,当我在Web项目中调试相同的功能时,结果为空。

The Snapshot

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

The Snapshot

我认为webconfig或Web Project的环境出现了问题,但是,我无法弄清楚...... :(

如何解决问题?

谢谢!

1 个答案:

答案 0 :(得分:0)

也许正确的翻译可能是&#34;无法评估表达式&#34;。如果是这样,那么很可能是Visual Studio的问题。尝试从解决方案中删除所有断点并重新插入。如果这对您没有帮助,请查看以下链接:Visual Studio 2013 'Could not evaluate Expression' Debugger Abnormality

如果问题始终出现在检索数据并尝试在调试模式下查看,那么您可能需要检查配置(可能是您错过了映射或对此表重要的事情)。