如何使用代码优先方法在 entity framework 7 中播种存储过程?

How to seed stored procedure in entity framework 7 using code first approach?

我们正在使用 entity framework 和代码优先在 .Net 中制作新应用程序。

我们目前的问题是,有没有一种方法可以在特定文件中编写所有存储过程,并在创建新数据库时 run/execute 它们。

主要思想是在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));