C# 实体框架调用强类型存储过程

C# 实体框架调用强类型存储过程,c#,entity-framework,stored-procedures,C#,Entity Framework,Stored Procedures,有时我需要在代码中调用存储过程。实体框架很乐意为我这样做,如下所示: MyDbContext db = new MyDbContext(); db.Database.ExecuteSqlCommand("EXEC MyProc;"); 这个特殊的proc不返回值-它只是执行一些更新,所以在这个实例中不需要返回值 我遇到的问题是,对proc的引用嵌入到字符串中,我希望尽可能避免这种情况。如果我更改了proc的名称,添加了额外的参数,或者完全删除了该proc,那么在运行时点击该行代码之前,我不会意

有时我需要在代码中调用存储过程。实体框架很乐意为我这样做,如下所示:

MyDbContext db = new MyDbContext();
db.Database.ExecuteSqlCommand("EXEC MyProc;");
这个特殊的proc不返回值-它只是执行一些更新,所以在这个实例中不需要返回值

我遇到的问题是,对proc的引用嵌入到字符串中,我希望尽可能避免这种情况。如果我更改了proc的名称,添加了额外的参数,或者完全删除了该proc,那么在运行时点击该行代码之前,我不会意识到中断的引用

对于调用具有强引用的存储过程,我有哪些选项?我在同一个解决方案中的数据库项目中定义了我的过程,并且我还使用了反向POCO生成器(它显然也会反向POCO过程,但我还没有尝试过)


我很想听听其他人解决这个问题的各种方法,可以是使用上面列出的工具,也可以是其他工具。

如果您的程序已经在EF模型中,那么如果程序的签名在DB中发生了更改,您将得到一个运行时错误,而不是编译时错误。你需要触摸真实的数据库才能发现它,对吗?对你在编译的时候碰过它吗?否。我的问题是,如何使过程引用成为编译时检查。