我正在将.NET 3.5 SP1,VS 2008与 Entity Framework 一起使用。我最初在模型中添加了一个存储过程,该过程使用了2个参数。后来,我将存储过程更改为仅接受1个参数。我运行了Update Model From Database菜单选项,并确认我的存储库已在Refresh选项卡中列出。完成向导,清理并重建解决方案,该模型从不更改存储过程的签名。

为什么不更新?从数据库更新模型功能是否已损坏?我想念什么吗?谢谢。

最佳答案

在将存储过程添加到 Entity Framework 之后,我已经看到了两个更新存储过程的问题:

  • 创建的用于调用SPROC的函数导入未更新(不正确的,过时的参数)
  • 为SPROC的结果集创建的复杂类型未更新(不正确,过期的字段)

  • 更新EDMX模型(函数导入)
  • 打开.edmx文件(在GUI设计器中)。
  • 右键单击某个空白区域,然后选择“从数据库更新模型”。
  • 在弹出窗口中单击“完成”(如果有)。您的SPROC签名应进行更新(以及任何功能导入)。

  • 更新存储过程复杂类型
  • 打开.edmx时,打开“模型浏览器”窗口。
  • 展开 ContentModel EntityContainer:... ,然后函数导入节点。查找存储过程的函数导入,然后双击 。将打开用于创建它的同一窗口,但现在将填充其数据。
  • 单击获取列信息按钮(查看按钮下方的网格以查看将进行的更改)。
  • 单击“复杂”单选按钮选项旁边的更新按钮。
  • 单击,然后单击确定,应更新结果集的“复杂类型”。
  • 关于visual-studio-2008 - 在 Entity Framework 3.5中刷新存储过程,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4995226/

    10-12 00:11
    查看更多