我的DbContext. 当从它继承时,我需要生成一个额外的“SQL”迁移操作来为它创建一个特定的触发器。它通过检查重叠范围来确保表结构是一致的。由于在 SQL Server 中没有重叠的索引或检查约束,我必须使用触发器(在检查约束中使用函数会导致与迁移相同的问题以及 SQL 中的混乱函数“命名空间”)。
由于我在OnModelCreating考虑更改生成的迁移期间没有找到任何创建触发器的方法。但是怎么做呢?
尝试使用SqlServerMigrationsSqlGeneratorand SqlServerMigrationsAnnotationProvider,但顾名思义,它们仅在生成 SQL 命令期间的最后阶段使用。这使得它们在使用迁移时有点“隐藏”。在需要时难以定制并在之后进行维护。
考虑使用CSharpMigrationOperationGenerator这似乎非常适合我的需求。但是有一个问题 - 我无法访问这个类。也不是命名空间。
根据来源,此类驻留在Microsoft.EntityFrameworkCore.Migrations.Design命名空间中并且是公共的。为了访问它Microsoft.EntityFrameworkCore.Design,必须安装一个包。
但它不起作用。
我在这里缺少什么?如何访问和继承这个类?或者也许有更好和正确的方法在特定表的迁移期间自动创建触发器?
c# sql-server entity-framework-core asp.net-core entity-framework-migrations