代码之家  ›  专栏  ›  技术社区  ›  Nathan Taylor

具有MySQL的实体框架-生成模型时超时

  •  9
  • Nathan Taylor  · 技术社区  · 16 年前

    类型的例外 'Microsoft.Data.Entity.Design.VisualStudio.ModelWizard.Engine.ModelBuilderEngine+GeneratesSDleException' 从数据库中。例外 消息是:'在运行时发生错误 执行命令定义。看见 详细信息的内部例外。”

    在命令执行期间遇到致命错误。

    受影响的表没有什么特别之处,也不是同一个表,只是在添加了一定数量(非特定)的表之后,如果没有“超时过期”错误,就无法更新上下文。有时只剩下一张桌子,有时是三张;结果是相当不可预测的。此外,在出现错误之前可以添加的表数量的差异向我表明,问题可能在于生成的查询的大小,以更新上下文,其中既包括现有表定义,也包括添加到其中的新表。实际上,SQL查询变得太大,并且由于某种原因无法执行。

    EdmGen2

    考虑到EdmGen2工作良好,这个问题的根源很可能在于Visual Studio中的工具,但我希望其他人能够就如何处理这个非常独特的问题提供一些建议,因为它看起来像 I'm not the only person experiencing it

    一位同事提出的一个建议是使用一些表交叉来维护两个独立的EBMX文件,但在我看来,这似乎是一个相当丑陋的修复。我想这就是我尝试使用“新技术”所得到的结果(

    7 回复  |  直到 16 年前
        1
  •  12
  •   Whiz    16 年前

    我整个下午都在为这个问题头疼。但是,我找到了一个解决方案,您可以在app.config或web.config中添加一条语句,其中EF desinger连接的存在形式为“Default Command Timeout=300000;”。问题解决了。

        2
  •  5
  •   Aren Cambre    15 年前

    上述建议不正确。

    Default Command Timeout 是唯一需要更改的连接字符串参数。 Connect Time 首先,只需调节等待连接的时间;那不是你的问题。

    默认命令超时 bug report 与甲骨文。 编辑:MySql开发人员已确认此错误,并已于2010年10月13日修复。修复被放在6.0.8、6.1.6、6.2.5和6.3.5中。

    我唯一的办法就是改变我的想法 ObjectContext CommandTimeout

    例如:

    var context = new CitationData.de_rawEntities();
    context.CommandTimeout = 180;
    
        3
  •  1
  •   Lizard    16 年前

    http://efvote.wufoo.com/forms/ado-net-entity-framework-vote-of-no-confidence/

    哎呀,刚刚意识到这个链接已经发布了!很抱歉

    这可能很难看,但它应该有用!

        4
  •  1
  •   Omar    16 年前

    你们这些人很软弱,没有解释如何轻松解决问题:

    1. 删除所有数据连接
    2. 下载最新的MySql连接器(6.3.x)
    3. openvisualstudio>服务器浏览器>右键单击“数据连接”>添加连接
    4. 输入连接详细信息
    5. 找出连接超时时间,并将其设置为30000左右
    6. 查找默认命令超时,并将其设置为30000左右

        5
  •  1
  •   Beaux    15 年前

    我尝试了以上所有的解决方案,但都无济于事。我下载了最新的.NET connector for MySQL(6.3.6),问题消失了。

        6
  •  0
  •   Devart    16 年前

    dotConnect for MySQL 具有 Entity Developer .
    我们在工具的模型生成过程中做了一些改进。您可以将Devart实体模型添加到项目中,该模型类似于ADO.NET实体框架模型,但有一些改进,并且没有超时问题。

        7
  •  0
  •   wallyk    16 年前

    首先是EF版本1(与.NET 3.5 SP 1一起提供)。看见 this this

    另一种是,这感觉与SQL Server和以前的ODBC驱动程序(大约1991年)使用错误类型调用时出现的症状大致相同:一种用于返回结果的查询( select create table )。最终,在尝试将选择结果与相应查询匹配时,连接变得毫无希望地不同步。(在那些日子里 不存在:计算机倾向于自动重新启动。)

    alter table