Asp.net mvc 如何使用代码优先的方法在实体框架7中为存储过程设定种子?

Asp.net mvc 如何使用代码优先的方法在实体框架7中为存储过程设定种子?,asp.net-mvc,entity-framework,ef-code-first,Asp.net Mvc,Entity Framework,Ef Code First,我们正在首先使用实体框架和代码在.Net中创建一个新的应用程序 我们目前面临的问题是,是否有一种方法可以将所有存储过程写入特定文件,并在创建新数据库时运行/执行它们 主要思想是在Seed方法中编写一些逻辑,从txt文件中读取数据并执行这些st.过程 如果有其他更好或更优雅的方法,请指导。以及这种运行st.过程的方法是否可取。 感谢您的帮助。我做了您想用种子方法做的事情。您必须以某种方式编写SQL,才能使其正常工作而不会出错 我的SQL文件如下所示 DECLARE @CreateOrAlter V

我们正在首先使用实体框架和代码在.Net中创建一个新的应用程序

我们目前面临的问题是,是否有一种方法可以将所有存储过程写入特定文件,并在创建新数据库时运行/执行它们

主要思想是在Seed方法中编写一些逻辑,从txt文件中读取数据并执行这些st.过程

如果有其他更好或更优雅的方法,请指导。以及这种运行st.过程的方法是否可取。
感谢您的帮助。

我做了您想用种子方法做的事情。您必须以某种方式编写SQL,才能使其正常工作而不会出错

我的SQL文件如下所示

DECLARE @CreateOrAlter VARCHAR(255)
IF EXISTS (SELECT * FROM sys.objects WHERE type = 'P' AND name = 'usp_ProcName')
BEGIN
    SET @CreateOrAlter = 'ALTER PROCEDURE '
END
ELSE
BEGIN
    SET @CreateOrAlter = 'CREATE PROCEDURE '
END
    EXEC (@CreateOrAlter + 
           '[dbo].[usp_ProcName]
            (
                @Param INT
            )
            AS
            BEGIN
                SELECT * FROM dbo.Table where Field = @Param
            END
            '
    )
然后在你的种子里你呼唤

context.Database.ExecuteSqlCommand(queryString));