Entity Framework Code Primero Método AddOrUpdate insertar valores duplicados

Tengo entidad simple:

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

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

Entonces en elSeed método que utilizoAddOrUpdate para rellenar la tabla:

<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>

Luego corro en la Consola de Administración de Paquetes:

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

Está todo bien: tengo tres filas en la mesa "Hall". Pero si lo ejecuto en la Consola de administración de paquetesUpdate-Database De nuevo ya tengo cinco filas:

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

¿Por qué? Creo que debería ser tres filas de nuevo, no cinco. Traté de usarId propiedad en lugar deName Pero no hace la diferencia.

ACTUALIZAR:

Este código produce el mismo 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>

También tengo el último EntityFramework instalado a través de nuget.

Respuestas a la pregunta(13)

Su respuesta a la pregunta