Скажем, мы имеем следующую простую модель:
public class Car
{
public int Year { get; set; }
public string Make { get; set; }
public string Model { get; set; }
public CarType Type { get; set; }
}
public enum CarType
{
Car, Truck
}
Entity Framework при добавлении нового объекта Car
в базу данных сохранит значение CarType
enum как целое число.
Если мы изменим перечисление CarType
таким образом, чтобы значения целочисленного значения изменялись (изменяли порядок или добавляли/удаляли значения), действительно ли Entity Framework умеет правильно обрабатывать миграцию данных с помощью Migrations?
Например, допустим, мы добавили другое значение в CarType
:
public enum CarType
{
Car, Truck, Van
}
Это не повлияет на существующие данные в базе данных. 0
все еще Car
, а 1
все еще Truck
. Но если мы изменили порядок CarType
, вот так:
public enum CarType
{
Car, Van, Truck
}
Записи базы данных с 1
в качестве CarType
для обозначения Truck
будут неверными, поскольку в соответствии с обновленной моделью 1
теперь Van
.