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.