在ASP.NET Boilerplate的种子中创建存储过程

时间:2017-08-22 10:04:08

标签: asp.net-boilerplate

如何在ASP.NET Boilerplate上播种期间运行SQL命令?

我需要运行一个复杂的查询,所以我认为使用存储过程将计算卸载到SQL Server上会更容易。

我已成功创建了一个自定义存储库,它注入ActiveTransactionProvider并使用DbContext中的ADO.NET来运行查询。

现在我想检查存储过程是否存在,如果没有在后端启动时在播种中创建它。

我尝试使用传递 SeedHelper 的DbContext中的ADO.NET,但我得到一个异常,即使事务范围已在帮助程序中设置为已抑制,我仍需要事务。我不知道在播种期间我可以在哪里注入活跃的交易提供商,所以我被卡住了。

1 个答案:

答案 0 :(得分:1)

您需要使用代码优先迁移来更改数据库架构(包括创建SP)。只需使用add-migration命令然后在其中执行SQL(如Code First Migrations and Stored Procedures)。

Seed仅用于添加/更新现有实体。它只在应用程序启动时运行。 EF Core还没有本机种子机制(据我所知)。