У меня есть простой объект:
public class Hall
{
[Key]
public int Id {get; set;}
public string Name [get; set;}
}
Затем в методе Seed
я использую AddOrUpdate
для заполнения таблицы:
var hall1 = new Hall { Name = "French" };
var hall2 = new Hall { Name = "German" };
var hall3 = new Hall { Name = "Japanese" };
context.Halls.AddOrUpdate(
h => h.Name,
hall1,
hall2,
hall3
);
Затем я запускаю консоль управления пакетами:
Add-Migration Current
Update-Database
Все в порядке: у меня три строки в таблице "Зал". Но если я запустил консоль управления пакетами Update-Database
снова, у меня уже есть пять строк:
Id Name
1 French
2 Japaneese
3 German
4 French
5 Japanese
Почему? Я думаю, что это должно быть три строки снова, а не пять. Я попытался использовать свойство Id
вместо Name
, но это не имеет значения.
UPDATE:
Этот код дает тот же результат:
var hall1 = new Hall { Id = 1, Name = "French" };
var hall2 = new Hall { Id = 2, Name = "German" };
var hall3 = new Hall { Id = 3, Name = "Japanese" };
context.Halls.AddOrUpdate(
h => h.Id,
hall1);
context.Halls.AddOrUpdate(
h => h.Id,
hall2);
context.Halls.AddOrUpdate(
h => h.Id,
hall3);
Также у меня есть последняя EntityFramework, установленная через nuget.