Entity Framework Code Primeiro método AddOrUpdate insert Duplicar valores

Eu tenho entidade simples:

<code>public class Hall
{
    [Key]
    public int Id {get; set;}

    public string Name [get; set;}
}
</code>

Então noSeed método que eu usoAddOrUpdate para preencher a tabela:

<code>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
);
</code>

Então eu corro no Console de Gerenciamento de Pacotes:

<code>Add-Migration Current
Update-Database
</code>

Tudo bem: eu tenho três linhas na tabela "Hall". Mas se eu correr no Package Management ConsoleUpdate-Database mais uma vez eu já tenho cinco linhas:

<code>Id  Name
1   French
2   Japaneese
3   German
4   French
5   Japanese
</code>

Por quê? Eu acho que deve ser três linhas novamente, não cinco. Eu tentei usarId propriedade em vez deName mas isso não faz a diferença.

ATUALIZAR:

Este código produz o mesmo resultado:

<code>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);
</code>

Também tenho o EntityFramework mais recente instalado via nuget.

questionAnswers(13)

yourAnswerToTheQuestion