自4.3.x版本的Entity Framework发布以来,我们已经生成了大约80次迁移。每次我们生成新的迁移时,EF都会为IMigrationMetadata.Target属性生成当前模型的快照。
由于每次迁移都会为我们的装配添加约135k个字符,因此我们开始达到临界质量。我们现在收到“没有剩余的逻辑空间来创建更多的用户字符串”。编译器错误。结合使用预编译视图,你有很多字符串。
在复杂模型中使用EF迁移的最佳长期方法是什么?
也许add-migration应该生成这些w /资源文件。
答案 0 :(得分:2)
我们遇到了同样的问题。我们还使用将生成的字符串移动到资源中来解决此问题:
public sealed partial class RegionalCenterRenameClass : IMigrationMetadata
{
// Skipped code
string IMigrationMetadata.Target
{
get { return Targets.M201207110918331_RegionalCenterRenameClass; }
}
}
其中Targets - 是资源文件(resx)。
答案 1 :(得分:1)
感谢您报告此事。我已将此问题添加到我们的EF6积压工作中。
现在,用资源查找替换字符串是我能想到的最好的解决方法。