我对存储过程和EDMX有无穷无尽的问题.我创建了一个过程,从数据库中更新了模型,并且一切正常.然后我删除了一个列并在存储过程中添加了一个新列.我更新了模型,但EDMX似乎没有刷新proc定义.
我删除了proc,并进行了更新,但手动必须删除对proc的所有引用.我最终只是重命名proc并通过模型更新从数据库导入.
我刚才有同样的问题.添加了新列,并重命名了现有列.我通过数据库中的更新模型刷新了EDMX,但EDMX没有变化,显然在运行时,它失败了.如何使用Entity Framework完成存储过程更新?

我删除了proc,重新生成了模型,删除了proc的'cs'文件,编译后再将程序添加到数据库中,重新生成模型,然后爆炸!它添加了相同的模型3次,只有最后一个是正确的.为什么它会继续带回旧版本?
这始于 EDMX 突然不生成类文件。.context.cs 文件包含类声明,例如
public virtual DbSet<myTable> myTable { get; set; }
Run Code Online (Sandbox Code Playgroud)
但实际的类文件并未生成。两个 .tt 文件都在那里,“运行自定义工具”没有帮助。
在调试 Model.tt T4 模板时,此声明:
public StringBuilder GenerationEnvironment { get { return (StringBuilder)_generationEnvironment.GetValue(_instance, null); } }
Run Code Online (Sandbox Code Playgroud)
产生
“System.NullReferenceException:'未将对象引用设置为对象的实例。'”
_ GenerationEnvironment 变量为 NULL。
为了确保数据库更改不会触发此问题,我重新创建了模型,仅包含一个未修改的表,但没有任何改进。
不幸的是,我没有能力将其转移到代码优先和核心,因此我们将不胜感激地收到任何建议。