Olá, André Carlos
Sim, porém essa verificação se o produto está cadastrado na tabela é feito já é feita pelo programa:
Arquivo: DataService.cs
public void InicializaDB()
{
contexto.Database.Migrate();
List<Livro> livros = GetLivros();
produtoRepository.SaveProdutos(livros);
}
private static List<Livro> GetLivros()
{
var json = File.ReadAllText("livros.json");
var livros = JsonConvert.DeserializeObject<List<Livro>>(json);
return livros;
}
Arquivo: ProductRepository.cs
public void SaveProdutos(List<Livro> livros)
{
foreach (var livro in livros)
{
if (!dbSet.Where(p => p.Codigo == livro.Codigo).Any())
{
dbSet.Add(new Produto(livro.Codigo, livro.Nome, livro.Preco));
}
}
contexto.SaveChanges();
}
Note que a condição if (!dbSet.Where(p => p.Codigo == livro.Codigo).Any())
impede a inserção do mesmo produto se ele já existir.
Minha preocupação agora é você ter mencionado a duplicação de o dados. Os produtos estão sendo duplicados na sua aplicação?