gpt4 book ai didi

entity-framework - EF 6数据库第一个: How to update stored procedures?

转载 作者:行者123 更新时间:2023-12-03 06:21:06 26 4
gpt4 key购买 nike

我们正在使用Entity Framework 6.0.0并首先使用数据库(like this)从表和存储过程生成代码。这似乎很有效,只是更新或刷新模型时不会反射(reflect)存储过程中的更改。向表添加列会得到反射(reflect),但不会向存储过程添加字段。

有趣的是,如果我转到模型浏览器,右键单击存储过程,选择添加函数导入,然后单击按钮获取列信息 我们可以看到正确的列。这意味着模型知道这些列,但无法更新生成的代码。

有一种解决方法,那就是在更新模型之前删除生成的存储过程。只要您没有对存储过程进行任何编辑,此操作就有效。有谁知道避免这种解决方法的方法吗?

我使用的是 Visual Studio 2013,其中包含截至 2013 年 12 月初的所有最新更新。

提前致谢!

更新 1:andersr的回答在一种情况下有所帮助,其中存储过程使用了临时表,所以我给了他+1,但它仍然没有解决更新简单存储过程的主要问题。

更新 2:shimron 下面的评论链接到有关 EF 3.5 中相同问题的问题。 EF 6.0 似乎仍然如此。阅读它以获取替代方法,但我目前的结论是,最简单的方法是在更新模型之前删除生成的存储过程。如果您想做一些奇特的事情,请使用部分类。

最佳答案

基于this answer通过 DaveD ,这些步骤解决了该问题:

  1. .edmx 中,按住 rt 键单击并选择模型浏览器
  2. 在模型浏览器(在 VS 2015 默认配置中,它是解决方案资源管理器中的一个选项卡)中,展开模型下的函数导入
  3. 双击您的存储过程。
  4. 点击返回复杂集合旁边的更新按钮(如果不返回标量或实体)
  5. 点击确定,然后保存您的 .edmx,以反射(reflect)整个项目中存储过程的字段更改。

关于entity-framework - EF 6数据库第一个: How to update stored procedures?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20518475/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com