如何在 C# MVC 中使用代码优先将新创建的存储过程添加到应用程序

How to add newly created Stored Procedure to the application using code first in C# MVC

我已经在我的应用程序中先从数据库生成代码。现在我在我的数据库中创建了一个新的存储过程。如何在我的应用程序中使用新 SP 更新模型。

是否有任何选项,例如在 CodeFirst 的 EF 上下文文件中从数据库更新模型。 我只能使用 CodeFirst,没有其​​他选择。

请帮忙。

通过在程序包管理器控制台中执行以下操作来搭建一个空的更改:

add-migration AddStoredProcedure

然后,您将获得一个带有空的 Up() 和 Down() 方法的迁移。然后创建一些代码来执行要在 Up() 方法中添加的 CREATE PROCEDURE SQL,并将代码添加到执行 "DROP PROCEDURE" 的 Down() 方法。 (在 DbMigration 基础 class 中有一个 Sql() 方法,因此您可以使用它。)。

然后是让迁移完成它的工作的情况,或者通过调用来触发它:

update-database

为了将来更新程序,Up() SQL 需要 "ALTER PROCEDURE" 而不是 "CREATE PROCEDURE" 并且 Down() 方法需要放回以前的版本程序。

为了比将 SQL 作为字符串连接在一起更容易阅读,我通常将存储过程作为 .sql 文件添加到 EF DLL(作为嵌入式资源)。