7

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

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

将 EF 迁移与复杂模型一起使用的最佳长期方法是什么?

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

4

2 回答 2

2

我们有同样的问题。我们还通过将生成的字符串移动到资源中来解决此问题:

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

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

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

于 2012-07-12T07:13:02.597 回答
1

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

目前,用资源查找替换字符串是我能想到的最佳解决方法。

于 2012-05-23T23:10:26.770 回答