Entity framework 确定DbMigration中的提供程序类型

Entity framework 确定DbMigration中的提供程序类型,entity-framework,ef-code-first,entity-framework-migrations,Entity Framework,Ef Code First,Entity Framework Migrations,我首先使用EF5代码,这样我就可以轻松地针对SQL Compact(供客户使用)和SQL Server(供内部用户使用)。我使用的是DbMigrations,因为它们只是有点不同,所以我必须在迁移过程中编写一些不同的Sql命令 然而,我看不到任何方法来确定运行迁移的目标是什么提供商。我知道EF有这个信息,因为它是我配置文件中连接字符串的一部分,如果我在NuGet命令行上重写连接字符串,它甚至是必需的 有什么想法吗?我不认为ADO.NET团队将此视为迁移的用例。不应该在迁移中使用有条件的每个提供程

我首先使用EF5代码,这样我就可以轻松地针对SQL Compact(供客户使用)和SQL Server(供内部用户使用)。我使用的是DbMigrations,因为它们只是有点不同,所以我必须在迁移过程中编写一些不同的
Sql
命令

然而,我看不到任何方法来确定运行迁移的目标是什么提供商。我知道EF有这个信息,因为它是我配置文件中连接字符串的一部分,如果我在NuGet命令行上重写连接字符串,它甚至是必需的


有什么想法吗?

我不认为ADO.NET团队将此视为迁移的用例。不应该在迁移中使用有条件的每个提供程序逻辑,而应该进行单独的每个提供程序迁移。我不确定如何在EF迁移中基于每个提供程序创建单独的迁移,特别是因为它似乎花费了大量精力来确保遵循线性迁移路径。我想您可以制作一组迁移文件的物理副本,但是在应用它们时,您必须调用每个迁移步骤。这在运行时还能起作用吗?