Я создал некоторые модели, добавил перенос, а затем выполнил операцию обновления базы данных, хотя при моей последней работе базы данных обновлений я получил сообщение об ошибке:
Последовательность содержит более одного элемента
Ниже вы можете найти мою конфигурацию миграции:
context.Categories.AddOrUpdate(p => p.CategoryName,
new Category
{
CategoryName = "Sport"
},
new Category
{
CategoryName = "Music"
}
);
context.Subcategories.AddOrUpdate(p => p.SubcategoryName,
new Subcategory
{
SubcategoryName = "Football"
},
new Subcategory
{
SubcategoryName = "Basketball"
},
new Subcategory
{
SubcategoryName = "Piano"
},
new Subcategory
{
SubcategoryName = "Violin"
}
);
context.Services.AddOrUpdate(p => p.ServiceType,
new Service
{
ServiceType = "Football player",
Category = { CategoryName = "Sport" },
Subcategory = { SubcategoryName = "Football" }
},
new Service
{
ServiceType = "Piano lessons",
Category = { CategoryName = "Music" },
Subcategory = { SubcategoryName = "Piano" }
}
);
Проблема возникает при добавлении новых сервисов. У меня уже есть категории и подкатегории, и если мне нравится Category = new Category { CategoryName = "Music" }
, тогда это работает, но я получаю запись Музыки дважды в моей базе данных (для этого примера). Я хочу использовать уже добавленные категории и подкатегории. Ниже также вы можете найти определения моих моделей.
public class Category
{
[Key]
public int CategoryID { get; set; }
public string CategoryName { get; set; }
}
// Subcategory is defined the same way...
public class Service
{
public int ServiceID { get; set; }
public string ServiceType { get; set; }
public virtual Category Category { get; set; }
public virtual Subcategory Subcategory { get; set; }
}
Любая идея, как его решить?