受影响的表没有什么特别之处,而且每次出现错误的表格都不一样,只是在添加了一定数量的表格后,上下文就无法更新,会出现“超时”错误。有时只剩下一个表格,有时则是三个,结果相当难以预测。此外,添加表格数量的变化表明,问题可能在于生成用于更新包括现有表格定义和新添加表格的上下文的查询语句大小。基本上,SQL查询语句太大,由于某种原因未能执行。在尝试从数据库更新时发生了'Microsoft.Data.Entity.Design.VisualStudio.ModelWizard.Engine.ModelBuilderEngine+GenerateSSDLException'类型的异常。 异常消息为:“执行命令定义时发生错误。请参见内部异常以获取详细信息。”
在执行命令期间遇到致命错误。
超时已过期。 操作未完成或服务器未响应。
如果我使用EdmGen2生成模型,则可以无错误地工作,但是生成的EDMX文件不能在Visual Studio中更新,否则就会产生上述异常。
很可能这个问题的根源在于Visual Studio中的工具,因为EdmGen2运行良好,但我希望其他人能提供一些关于如何解决这个非常独特问题的建议,因为似乎我不是唯一遇到这个问题的人。
我的同事提出的一个建议是使用两个不同的EBMX文件并进行表格交叉,但在我看来这似乎是一种相当丑陋的解决方案。我想这就是尝试使用“新技术”时所遇到的问题。:(