如何解压缩/读取存储在EF 4.3 Code First Migrations __MigrationHistory表中的压缩模型?
我在this comment中找到了一个提示,我可以使用zip / gzip解压缩它,但我不知道我应该怎么做。
问题是我在我的ef模型类中改变了一些东西,但当我调用“add-migration”时,会产生一个空的迁移。我认为这是因为我的模型类的更改已经分配给现有的迁移:(
答案 0 :(得分:2)
(这可能是一个很好的起点 - 在您的情况下不起作用)
我认为你可能会发现这很有用 - 你强烈地想要'需要在相反的方向上解决这个问题,我想(我只是暗示这可能是方向,你我必须检查一下,自己测试一下...... ...
http://brice-lambson.blogspot.com/2012/05/using-entity-framework-code-first-with.html
它使用以下代码......
private byte[] GetModel(TContext context)
{
using (var memoryStream = new MemoryStream())
{
using (var gzipStream = new GZipStream(
memoryStream,
CompressionMode.Compress))
using (var xmlWriter = XmlWriter.Create(
gzipStream,
new XmlWriterSettings { Indent = true }))
{
EdmxWriter.WriteEdmx(context, xmlWriter);
}
return memoryStream.ToArray();
}
}
序列化模型。
然而,正如我所理解的(如果我理解得当)你需要在另一个方向......
快速搜索未显示等效的reader
- 您可以下载最新的EF6 code - 或者也可以找到EF5(如果需要,我会稍后链接)。
读者:
实际上这可能更接近你想要的东西:
http://edmxdom.codeplex.com/
(我没有试过,但是从MS链接)
并检查有关使用MetadataWorkspace
如果您需要有关MetadataWorkspace
的更多信息,我会发布一些关于该主题的帖子。您可以获得大部分信息 - 您需要对EdmxWriter
正在做的事情进行“反向”排序。
基本上,你正在寻找entity framework Edmx reader
。
EdmxDOM:
我刚刚快速检查了它 - 它似乎正在进行你需要的Edmx格式管理 这是一个'VB'项目 - 但你可以通过那个
似乎有一个“读者”(再次,不确定,只是通过这个,因为我知道作家 - 但从未使用过这部分,方向)......
Public Sub LoadFile(ByVal fileName As String)
在Edmx.vb