我正在寻找一种方法来更新我的firebird数据库。我尝试使用迁移:实体框架代码优先 - Firebird迁移:否MigrationSqlGenerator?
private void btnUpdateDb_Click(object sender, EventArgs e)
{
DbConnection userDBConnection = ClassBasicRepository.GetDBConnection();
var configuration = new Configuration();
configuration.TargetDatabase = new DbConnectionInfo(
userDBConnection.ConnectionString,
"FirebirdSql.Data.FirebirdClient");
DbMigrator migrator = new DbMigrator(configuration);
migrator.Update();
}
DbMigrationsConfiguration:
public sealed class Configuration : DbMigrationsConfiguration<BaseDbContext>
{
public Configuration()
{
AutomaticMigrationsEnabled = false;
//SetSqlGenerator("FirebirdSql.Data.FirebirdClient", new FirebirdSql.Data.Entity.???);
}
protected override void Seed(BaseDbContext context)
{
MigrationsAssembly = Assembly.GetExecutingAssembly();
MigrationsNamespace = "MyServices.Data.Migrations";
}
}
“migrator.Update()” 给了我以下异常:
没有MigrationSqlGenerator发现提供商FirebirdSql.Data。 FirebirdClient”。使用目标迁移配置类中的SetSqlGenerator方法来注册其他SQL生成器。
我必须在配置中指定一个MigrationSQLGenerator。但我无法在FirebirdClient.dll中找到它。我发现的唯一解决方案是自己重写它: https://github.com/mrward/entityframework-sharpdevelop/blob/master/src/EntityFramework/Migrations/Sql/SqlCeMigrationSqlGenerator.cs
Firebird特定的MigrationSQLGenerator确实是必需的,不是为了启用迁移而提供的吗?
我的环境: 的EntityFramework 5.0.0 .NET 4.5 FirebirdClient 3.0.2.0
嗯,似乎迁移不是由FirebirdClient.dll(尚)supportet。但是,替代方案是什么?普通SQL?请参阅:http://tracker.firebirdsql.org/browse/DNET-506 – Dust258