好的,我明白了:只要涉及数据库访问,VS Web Host 就不会向 Visual Studio IDE 的即时/监视窗口生成参数化 LINQ for Entities 的结果。
这样的评估结果calls into native method System.Diagnostics.Debugger.get_IsAttached() ... in this context is not supported
.
据我了解,这是因为数据库访问依赖于 SYS 驱动程序对非托管代码的调用。
我确信应该对源项目、VS 调试、VS Web 托管和主机 IIS 池设置进行一系列调整来规避此问题。
但我无法设计它们,要么探索 IDE 设置,要么通过谷歌搜索它。
因此,由于我手头仍然有故障排除,而不是尝试评估类似的东西
BaseContext.DbContext.Set<SupMedResult>()
.Where(r => r.CPF == "58243143149")
.ToList()
我否则铸造
BaseContext.DbContext.Set<SupMedResult>()
.ToList()
.Where(r => r.CPF == "58243143149")
我的看法是:
- 第一种方法到达涉及数据库模式查询的 EF 决策分支(用于图形映射)
- 第二种方法呈现单个直接的全表获取
(为什么全表获取没有命中任何native method
?我不知道!)
从那时起,我就能够进行我的小提琴并找出查询错误的地方。
顺便说一句,实际的查询比我在问题和这个答案中使用的查询要复杂得多。