Как я могу остановить миграции Entity Framework 5, добавив dbo. в ключевые имена?
Я начал проект с использованием Entity Framework 4.3 Code First с миграциями вручную и SQL Express 2008 и недавно обновил до EF5 (в VS 2010) и заметил, что теперь, когда я изменяю что-то вроде ограничения внешнего ключа, код миграции добавляет & quot; dbo. & Quot; в начале имени таблицы и, следовательно, имя внешнего ключа, которое она создает, является неправильным для существующих ограничений (и в целом теперь кажется странным именем).
Оригинальный скрипт миграции в EF 4.3 (примечаниеForeignKey("Products", t => t.Product_Id)):
CreateTable(
"Products",
c => new
{
Id = c.Int(nullable: false, identity: true),
ProductName = c.String(),
})
.PrimaryKey(t => t.Id);
CreateTable(
"KitComponents",
c => new
{
Id = c.Int(nullable: false, identity: true),
Component_Id = c.Int(),
Product_Id = c.Int(),
})
.PrimaryKey(t => t.Id)
.ForeignKey("Products", t => t.Component_Id)
.ForeignKey("Products", t => t.Product_Id)
.Index(t => t.Component_Id)
.Index(t => t.Product_Id);
Сгенерированы имена внешних ключей: FK_KitComponents_Products_Product_Id FK_KitComponents_Products_Component_Id
Если я затем обновлюсь до EF5 и изменим внешний ключ, код миграции будет выглядеть примерно так (обратите внимание на"dbo.KitComponents" and "dbo.Products" в отличие от просто"KitComponents" and "Products"):
DropForeignKey("dbo.KitComponents", "Product_Id", "dbo.Products");
DropIndex("dbo.KitComponents", new[] { "Product_Id" });
и обновление базы данных завершается с сообщением: & APOS;FK_dbo.KitComponents_dbo.Products_Product_Id& APOS; это не ограничение. Не удалось отбросить ограничение. Смотрите предыдущие ошибки.
так что в EF5 название ограничения изменилось с FK_KitComponents_Products_Product_Id в FK_dbo.KitComponents_dbo.Products_Product_Id (с префиксом dbo.)
Как заставить EF5 вести себя так, как это было в EF 4.3, поэтому мне не нужно изменять каждый кусок нового миграционного кода, который он выплевывает?
Мне не удалось найти примечания к выпуску о том, почему это изменилось и что с этим делать :(