Kod struktury encji Najpierw wstaw metodę AddOrUpdate Powielone wartości

Mam prosty byt:

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

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

Potem wSeed metody używamAddOrUpdate wypełnić tabelę:

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

Następnie uruchamiam konsolę zarządzania pakietami:

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

Wszystko w porządku: mam trzy rzędy w tabeli „Hall”. Ale jeśli uruchomię w konsoli zarządzania pakietamiUpdate-Database znowu mam już pięć rzędów:

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

Czemu? Myślę, że powinny być trzy rzędy, a nie pięć. Próbowałem użyćId własność zamiastName ale to nie robi różnicy.

AKTUALIZACJA:

Ten kod daje taki sam wynik:

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

Mam także najnowszą EntityFramework zainstalowaną przez nuget.

questionAnswers(13)

yourAnswerToTheQuestion