EF 4.3.1 IMigrationMetadata.Target字符串导致“没有剩余的逻辑空间来创建更多用户字符串”。编译错误

时间:2012-05-21 19:10:57

标签: entity-framework

自4.3.x版本的Entity Framework发布以来,我们已经生成了大约80次迁移。每次我们生成新的迁移时,EF都会为IMigrationMetadata.Target属性生成当前模型的快照。

由于每次迁移都会为我们的装配添加约135k个字符,因此我们开始达到临界质量。我们现在收到“没有剩余的逻辑空间来创建更多的用户字符串”。编译器错误。结合使用预编译视图,你有很多字符串。

在复杂模型中使用EF迁移的最佳长期方法是什么?

也许add-migration应该生成这些w /资源文件。

2 个答案:

答案 0 :(得分:2)

我们遇到了同样的问题。我们还使用将生成的字符串移动到资源中来解决此问题:

 public sealed partial class RegionalCenterRenameClass : IMigrationMetadata
 { 
  // Skipped code

  string IMigrationMetadata.Target
  {
    get { return Targets.M201207110918331_RegionalCenterRenameClass; }
   }
 }

其中Targets - 是资源文件(resx)。

答案 1 :(得分:1)

感谢您报告此事。我已将此问题添加到我们的EF6积压工作中。

现在,用资源查找替换字符串是我能想到的最好的解决方法。