Boa tarde, toda vez que executamos a aplicação, a mesma está "populando" novamente a tabela de produto, ou seja, temos a duplicação de registros . Não está faltando um if no contexto.Database.EnsureCreated() ?
public void InicializaDB()
        {
            if (contexto.Database.EnsureCreated())
            {
                IList<Livro> livros = GetLivros();
                produtoRepository.SaveProdutos(livros);
            }
        } 
            