I have a list of strings of unknown length. I'm adding them to database:
if (somenteNovasClas.Any()) {
foreach (string item in wsClassificacoes) {
dc.Classificacaos.Add(new Classificacao { Descricao = item });
}
dc.SaveChanges();
}
But EF will generate one INSERT
for each row:
exec sp_executesql N'insert [dbo].[Classificacao]([Descricao], [Excluido])
values (@0, @1)
select [CodClassificacao]
from [dbo].[Classificacao]
where @@ROWCOUNT > 0 and [CodClassificacao] = scope_identity()',N'@0 varchar(255),@1 bit',@0='Mercado',@1=0
go
exec sp_executesql N'insert [dbo].[Classificacao]([Descricao], [Excluido])
values (@0, @1)
select [CodClassificacao]
from [dbo].[Classificacao]
where @@ROWCOUNT > 0 and [CodClassificacao] = scope_identity()',N'@0 varchar(255),@1 bit',@0='Concorrência',@1=0
go
I'd like to know how to insert in one time that EF will generate a command like:
INSERT INTO Table (column)
VALUES ([array[0]]), ([array[1]]), ...
instead of one insert foreach.. Any ideas?