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.