Nas*_*aee 11 c# entity-framework ef-migrations
在EF6中使用Code First Migration时,它会创建一个__MigrationHistory使用四列调用的表:
MigrationId
ContextKey
Model
ProductVersion
Run Code Online (Sandbox Code Playgroud)
Model字段中的二进制数据是什么?它是否包含数据库架构?我的意思是如果我有一个包含数百个表的数据库,该Model字段是否包含所有这些表?
小智 15
在 MSSQL 上使用
SELECT *, CONVERT(xml, DECOMPRESS(Model)) FROM [dbo].[__MigrationHistory]
Run Code Online (Sandbox Code Playgroud)
Sof*_*tor 12
在内部,它使用此函数来获取Model字段的值:
public virtual byte[] Compress(XDocument model)
{
DebugCheck.NotNull(model);
using (var outStream = new MemoryStream())
{
using (var gzipStream = new GZipStream(outStream, CompressionMode.Compress))
{
model.Save(gzipStream);
}
return outStream.ToArray();
}
}
Run Code Online (Sandbox Code Playgroud)
所以,是的,该字段似乎包含压缩形式的整个模型.
为了理解EF 的迁移过程,我建议查看Max Vasilyev的启发性实体框架迁移内部或如何查看生成的 Xml-Schema文章。
文章提供了一个示例项目。您只需要将示例输出之一保存到.edmx文件,然后使用Visual Studio打开它。
| 归档时间: |
|
| 查看次数: |
5795 次 |
| 最近记录: |