我们正在切换代码库,以默认打开"检查算术溢出/下溢"选项,并且我们的 DevForce 查询遇到了问题。
我能够通过一个非常基本的查询重现这个问题,例如针对罗斯文IB数据库的查询:
var coolProducts = em.Products.Where(p => p.UnitsInStock == 42).Execute();
通过执行一些调试,看起来 DevForce 正在尝试将该查询添加到缓存中,这涉及为查询创建哈希代码。 执行哈希代码生成(ExpressionHashCodeCalculator
)的类缺少ConvertChecked
ExpressionType
的开关大小写,因此它抛出一个ArgumentException
,说"未知表达式类型"。
当您在检查上下文中运行时,编译器似乎会在表达式中到处洒上 ConvertChecked 的东西。
感谢您报告此问题。 它将在 3 月发布的下一个版本中修复。