18

我们的添加迁移经常失败,但并非始终如一。迁移总是到达脚手架步骤,然后大约 5 次中的 4 次我们会收到如下内容:

 System.Runtime.Remoting.RemotingException: Object '/2355037d_df43_460b_8737_725c0c1c80be/hvdculybngjc_rcnskixmk7+_2.rem' has been disconnected or does not exist at the server.at EnvDTE.Project.get_Properties()
 at System.Data.Entity.Migrations.Extensions.ProjectExtensions.GetPropertyValue[T]  (Project project, String propertyName)
 at System.Data.Entity.Migrations.Extensions.ProjectExtensions.AddFile(Project project, String path, String contents)
 at System.Data.Entity.Migrations.Utilities.MigrationWriter.Write(ScaffoldedMigration scaffoldedMigration, Boolean rescaffolding, Boolean force, String name)
 at System.Data.Entity.Migrations.AddMigrationCommand.<>c__DisplayClass3.<.ctor>b__1()
 at System.Data.Entity.Migrations.MigrationsDomainCommand.Execute(Action command)
Object '/2355037d_df43_460b_8737_725c0c1c80be/hvdculybngjc_rcnskixmk7+_2.rem' has been  disconnected or does not exist at the server.

有时迁移类无论如何都会生成,但更多时候它不会生成。对这个错误的搜索表明正在垃圾收集一些不应该的东西,但这并不能真正帮助我们解决这个问题。

我们的数据迁移项目使用 .NET 4.5,EF 5 在 Windows 8、Visual Studio 2012 和 SQL Server 2012 中运行。

4

1 回答 1

32

这发生在一些生成新索引的长时间运行的脚本上。我们使用的解决方法是使用:

update-database -Script

然后 EF 将 SQL 迁移吐出到屏幕上,然后我们可以直接从服务器运行 SQL,因此不会出现超时问题。

于 2014-03-17T14:45:46.460 回答