Что такое столбец модели в таблице MigrationHistory?
В EF6 при использовании Code First Migration создается таблица с именем __MigrationHistory
с четырьмя столбцами:
MigrationId
ContextKey
Model
ProductVersion
Что такое двоичные данные в поле Model
? Содержит ли она схему базы данных?
Я имею в виду, если у меня есть база данных с сотнями таблиц, содержит ли поле Model
их все?
Ответы
Ответ 1
Внутри он использует эту функцию для получения значения для поля 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();
}
}
Итак, да, кажется, что поле содержит целую модель в сжатой форме.
Ответ 2
Для понимания процесса EF я бы предложил проверить Макс Васильев просветительский Внутри Entity Framework Migrations или Как просмотреть созданную Xml-схему.
В статье представлен образец проекта.
Вам просто нужно сохранить один из выборочных выходов в файл .edmx и открыть его с помощью Visual Studio.
Ответ 3
На MSSQL используйте
SELECT *, CONVERT(xml, DECOMPRESS(Model)) FROM [dbo].[__MigrationHistory]