【发布时间】:2013-12-29 09:17:10
【问题描述】:
我们使用Entity Framework 6.0.0 并首先使用数据库(like this) 从表和存储过程生成代码。这似乎很好用,只是在更新或刷新模型时不会反映存储过程中的更改。向表中添加列会被反映,但不会向存储过程中添加字段。
有趣的是,如果我转到Model Browser,右键单击存储过程,选择Add Function Import,然后单击按钮Get Column Information,我们可以看到正确的列。这意味着模型知道列,但无法更新生成的代码。
有一种解决方法,即在更新模型之前删除生成的存储过程。只要您没有对存储过程进行任何编辑,这就会起作用。有谁知道避免这种解决方法的方法?
我正在使用 Visual Studio 2013 以及截至 2013 年 12 月初的所有最新更新。
提前致谢!
更新 1: andersr 的回答在一种情况下有所帮助,其中存储过程使用了一个临时表,所以我给了他 +1,但它仍然没有解决更新简单存储过程的主要问题。
更新 2: shimron 在下面的评论链接到关于 EF 3.5 中相同问题的问题。 EF 6.0 似乎仍然如此。阅读它以了解另一种方法,但我现在的结论是,最简单的方法是在更新模型之前删除生成的存储过程。如果您想做一些花哨的事情,请使用部分类。
【问题讨论】:
-
这个问题“刷新实体框架 3.5 中的存储过程”与您的问题类似。这里:stackoverflow.com/questions/4995226/…
标签: entity-framework stored-procedures visual-studio-2013 entity-framework-6 ef-database-first