Полностью ли поддерживает изменения перечисления новая функция миграции в Entity Framework 5?

Допустим, у нас есть следующая простая модель:

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.

11
задан Chad Levy 10 August 2012 в 21:31
поделиться