【问题标题】:VS 2010 EDMX Stored Procedure MissingVS 2010 EDMX 存储过程丢失
【发布时间】:2018-08-10 23:51:05
【问题描述】:

使用 Visual Studio 2010 SP1、SQL Server 2008:

主板最近出现故障,我将所有工作迁移到了新计算机上。我的项目使用实体数据模型连接到 sql 数据库。在迁移之前我已经完成了所有设置和工作,但现在所有存储过程都从模型浏览器中消失了。函数导入仍然存在,但它们显然不再起作用。

问题是,当我转到“从数据库更新模型”时,存储过程不显示。大概是因为它们已经被添加,并且更新窗口隐藏了您应该已经拥有的东西。刷新选项卡也不显示它们,或者在我点击刷新时执行任何操作。它们仍然存在于服务器上,所以我知道它正在隐藏它们,因为它认为它们已经存在。

如何删除导致 VS 认为它们已被添加的任何原因,以便我可以重新添加或让它们刷新?我真的不想删除模型并重新开始。

【问题讨论】:

    标签: visual-studio-2010 sql-server-2008 entity-framework-4


    【解决方案1】:

    如果您在模型浏览器中没有看到函数存储过程,请打开 EDMX 作为 XML 并检查 <!-- SSDL content --> 引入的部分是否包含和 Function 元素 - 那是您的存储过程。然后检查<!-- CSDL content --> 引入的部分是否包含任何FunctionImport 元素-这是您的函数导入,最后检查<!-- C-S mapping content --> 引入的部分是否包含andy FunctionImportMapping 元素-它们是过程和函数导入之间的映射。您缺少的每个存储过程在每个部分中都应该有一个记录。如果它没有备份您的 EDMX 并删除存储过程的剩余记录。然后检查它是否出现在向导中。

    【讨论】:

    • 我删除了存储过程和函数导入映射的条目,但它们仍然没有显示在更新窗口中。存储过程的名称不在 edmx 文件中的任何其他位置。是否还有其他存放它们的地方?
    • 没有。这看起来像是 VS 的一些非常奇怪的问题。
    • 这没有意义。它们在服务器上,因此 VS 出于某种原因选择不显示它们。它必须将它们保存在某个地方。
    • 如果您尝试使用指向数据库的新空白 EDMX 创建新项目,您会在向导中看到它们吗?
    • 没有。我是个白痴:仅为旧计算机上的帐户设置权限。我从未将它们设置为一般用途,因为我仍在研究它们。他们没有出现是因为我没有他们的权限。
    【解决方案2】:

    根据我对Ladislav's answer 的评论,我的解决方案是

    没有。我是个白痴:仅为旧计算机上的帐户设置权限。我从未将它们设置为一般用途,因为我仍在研究它们。他们没有出现是因为我没有他们的权限。

    【讨论】:

      【解决方案3】:

      使用实体模型浏览器(在 edmx 设计器中右键单击 -> 模型浏览器)并浏览到存储过程节点。

      您可以从那里编辑或删除它们

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-02-03
        • 1970-01-01
        • 1970-01-01
        • 2012-07-12
        • 2015-02-01
        • 2013-12-30
        • 1970-01-01
        • 2014-11-17
        相关资源
        最近更新 更多