如何解压缩/读取存储在EF 4.3代码优先迁移__MigrationHistory表中的压缩模型?EF 4.3代码优先迁移 - 解压缩__MigrationHistory模型
我在this comment中发现了一个提示,我可以使用zip/gzip对它进行解压缩,但我不知道我应该怎么做。
问题是,我已经改变了我的ef模型类中的某些东西,但是当我调用“add-migration”时会生成一个空迁移。我想这是因为我的模型类的变化已经分配给现有迁移:(
如何解压缩/读取存储在EF 4.3代码优先迁移__MigrationHistory表中的压缩模型?EF 4.3代码优先迁移 - 解压缩__MigrationHistory模型
我在this comment中发现了一个提示,我可以使用zip/gzip对它进行解压缩,但我不知道我应该怎么做。
问题是,我已经改变了我的ef模型类中的某些东西,但是当我调用“add-migration”时会生成一个空迁移。我想这是因为我的模型类的变化已经分配给现有迁移:(
(这可能是一个很好的起点 - 不会工作你的情况)
我想你可能会觉得这很有用 - 你'只是'需要在相反的方向工作,我想(我只是暗示这里可能是什么方向,你必须检查一下,测试自己) ...
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 one(如果需要,我会在后面链接)。
读者:
其实这可能是更接近你想要什么:
http://edmxdom.codeplex.com/
(我还没有尝试过了,但是从MS被挂)
并检查有关使用的响应MetadataWorkspace
如果您需要更多关于MetadataWorkspace
的信息,我会发布一些关于该主题的文章。你可以获得大部分信息 - 你需要对'EdmxWriter
正在做什么'进行排序。
本质上,您正在寻找entity framework Edmx reader
。
EdmxDOM:
我刚刚检查出来快 - 这似乎是做EDMX格式管理需要。
这是一个“VB”项目 - 但你可以通过
工作有什么似乎是一个“读者”(再次,不知道,只是通过这个去了,因为我知道的作家 - 但从未工作这部分,方向)...
Public Sub LoadFile(ByVal fileName As String)
在Edmx.vb
要小心,你不打电话从IDbContextFactory Database.SetInitializer(新MigrateDatabaseToLatestVersion),这将导致添加迁移产生空迁移。 – James 2013-04-10 10:17:35
感谢您的提示,但我没有从IDbContextFactory调用它。 – Dennis 2013-04-10 10:23:05