【问题标题】:Create stored procedure in seeding of ASP.NET Boilerplate在 ASP.NET 样板的种子中创建存储过程
【发布时间】:2017-08-22 10:04:08
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: asp.net-boilerplate


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-27
      • 2020-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多