0

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

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

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

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

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

4

1 回答 1

1

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

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

于 2017-08-23T05:18:01.483 回答