Допустим, у нас есть следующая простая модель:
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
как целое число.
Если мы изменим перечисление CarType
таким образом, что целые значения изменятся (, изменят порядок или добавят/удалят значения ), , знает ли Entity Framework, как правильно обрабатывать миграцию данных с помощью миграции?
Например, предположим, что мы добавили еще одно значение кCarType
:
public enum CarType
{
Car, Truck, Van
}
Это не окажет реального влияния на существующие данные в базе данных. 0
по-прежнему Car
, а 1
по-прежнему Truck
. Но если бы мы изменили порядок CarType
, вот так:
public enum CarType
{
Car, Van, Truck
}
Записи базы данных с 1
вместо CarType
для обозначения Truck
были бы неправильными, поскольку согласно обновленной модели 1
теперь Van
.