Кажется, что SaveChanges () сохраняет только последний объект, добавленный в таблицу:
static void Main(string[] args)
{
Category c = new Category();
using (GenericDBEntities db = new GenericDBEntities())
{
foreach (Match i in db.Matches)
{
if (!db.Categories.Any())
{
c.CategoryInternalId = i.CategoryId;
c.CategoryName = i.CategoryName;
c.SportId = i.SportId;
db.Categories.Add(c);
}
else
{
foreach (Category a in db.Categories)
{
if (i.CategoryId != a.CategoryInternalId)
{
c.CategoryInternalId = i.CategoryId;
c.CategoryName = i.CategoryName;
c.SportId = i.SportId;
db.Categories.Add(c);
}
else
{
return;
}
}
}
}
db.SaveChanges();
Я пробовал это несколькими различными способами, которые все имеют одинаковый или меньший результат, сохраняет цикл forих все, независимо от того, выполнено условие или нет.Почему он сохраняет только последний объект таблицы соответствия?Чего мне не хватает?
Пояснение: Задача состоит в том, чтобы просмотреть таблицу соответствия, в которой есть дубликаты CategoryID, и, если ее еще нет в таблице категорий, добавить ее, чтобы онане будет хранить дубликаты снова, проблема в том, что таблица категорий изначально пуста, поэтому логика новичка все еще учится!