代码首次迁移后,创建的Sdf将被删除

时间:2019-04-26 07:10:37

标签: c# entity-framework ef-code-first sql-server-ce

我正在使用WPF应用程序中的SQL Server精简版进行代码优先迁移。

我能够先使用代码生成.SDF数据库文件,并且可以应用迁移,但是在用户计算机中已经创建了.SDF(仅空.SDF,没有表已添加),但未应用迁移,几秒钟后被删除。只有少数用户面临此问题(我们正在使用单击一次部署)

我已经创建了一个示例应用程序,以首先使用代码向用户生成.SDF数据库文件,但是在该应用程序中,它也是相同的行为。我也保留了日志,但是我们没有任何异常。

下面是我用于应用迁移的代码。

var connectionString = Constants.SqlCEConnectionString;
var providerName = "System.Data.SqlServerCe.4.0";

var configuration = new Configuration();
configuration.TargetDatabase = new DbConnectionInfo(connectionString, providerName);
var migrator = new DbMigrator(configuration);

IEnumerable<string> migrations = migrator.GetPendingMigrations();

if (migrations != null && migrations.Count() > 0)
{
    migrator.Update();
}

不应该删除.SDF,并且应该进行迁移

1 个答案:

答案 0 :(得分:0)

也许用户已启用漫游?我会考虑使用:

 "Data Source="C:\Users\<user-machine-name>\AppData\Test\Test.sdf;"