używam ASP.NET MVC 5 z Entity Framework 6. Mam tabeli tak:Przenoszenie pozycji do listy przedmiotów w migracji Entity Framework
public class Recipe
{
[Required]
public virtual Food Food { get; set; }
//...rest
}
Teraz chcę, aby przesunąć Food
do listy żywności. Tak:
public class Recipe
{
public virtual IList<Food> Foods { get; set; }
//... rest
}
Gdybym spróbować i dodać migrację, stracę dane związane z Food
IDS. I nie będzie wiedział, który przepis jest na jedzenie.
Próbowałem zachowując Food
i dodać listę tak:
public class Recipe
{
[Required]
public virtual Food Food { get; set; }
public virtual IList<Food> Foods { get; set; }
//... rest
}
Ale migracja dodaje drugi klucz obcy i nie aktualizować. Oto kod, który nie migracja:
public override void Up()
{
DropForeignKey("dbo.Recipes", "Food_ID", "dbo.Foods");
DropIndex("dbo.Recipes", new[] { "Food_ID" });
AddColumn("dbo.Foods", "Recipe_Id", c => c.Int());
AddColumn("dbo.Foods", "Recipe_Id1", c => c.Int());
AlterColumn("dbo.Recipes", "Food_ID", c => c.Int());
CreateIndex("dbo.Foods", "Recipe_Id");
CreateIndex("dbo.Foods", "Recipe_Id1");
CreateIndex("dbo.Recipes", "Food_ID");
AddForeignKey("dbo.Foods", "Recipe_Id", "dbo.Recipes", "Id");
AddForeignKey("dbo.Foods", "Recipe_Id1", "dbo.Recipes", "Id");
AddForeignKey("dbo.Recipes", "Food_ID", "dbo.Foods", "ID");
}
Jak mogę przesunąć pojedynczy Food
do listy Food
s bez utraty aktualnych danych w tabeli?
Jaki był pierwotny związek między 'Recipes' i' Foods'? Wygląda na to, że próbujesz przejść z jednego do jednego (gdzie klucz obcy znajduje się w tabeli "Przepisy") na jeden do wielu (gdzie klucz obcy znajduje się w tabeli "Żywność")? – jjj