2016-07-20 2 views
2

Я имел поле со следующими атрибутами:Изменения StringLength атрибута не входит в кодовом Первой миграции

[Column("Name")] 
[StringLength(50)] 
public string Name { get; set; } 

Миграция для этой области выглядит следующим образом:

CreateTable(
"dbo.TEST", 
c => new 
{ 
    Id = c.Int(nullable: false), 
    Name = c.String(maxLength: 50), 
}) 
.PrimaryKey(t => t.Id) 
.Index(t => t.Id 
); 

Тогда я изменил поле, как это:

[Column("Test_Name")] 
[StringLength(255)] 
public string TestName { get; set; } 

и выполнен Add-Migration, но StringLength изменения не был включен, он по-прежнему NVARCHAR2(50) в моей БД Oracle и новая миграция выглядит следующим образом:

RenameColumn(table: "dbo.TEST", name: "Name", newName: "Test_Name"); 

Это общая проблема?

Что нужно сделать, чтобы длина также была изменена в БД?

+0

Возможно, вам понадобится взломать код Up(): http://stackoverflow.com/questions/28299080/how-to-change-size-of-existing-column-using-entity-framework-6-code- сначала –

ответ

0

Сколько миграций у вас уже есть? Мы начали испытывать ошибки при создании сценариев миграции после накопления ~ 20 миграций. Если у вас более 10 миграций, попробуйте consolidate them. Когда я сделал консолидацию, генерация сценариев миграции начала работать нормально.

+0

Спасибо. Полезно знать, но пока у меня всего 5. – Palmi

+0

Просто попробуйте удалить все ваши миграции и создать зеленое поле inital, чтобы увидеть, связано ли это с ошибкой в ​​EF. –

Смежные вопросы