Desejo adicionar algumas linhas a um banco de dados usando o Linq to SQL, mas desejo fazer uma "verificação personalizada" antes de adicionar as linhas para saber se devo adicionar, substituir ou ignorar as linhas recebidas. Eu gostaria de manter o tráfego entre o cliente e o servidor de banco de dados o mais baixo possível e minimizar o número de consultas.
Para fazer isso, quero buscar o mínimo de informações necessárias para a validação e apenas uma vez no início do processo.
Eu estava pensando em fazer algo assim, mas obviamente não funciona. Alguém tem uma ideia?
Dictionary<int, DateTime> existingItems =
(from ObjType ot in TableObj
select (new KeyValuePair<int, DateTime>(ot.Key, ot.TimeStamp))
)
O que eu gostaria de ter no final seria um Dicionário, sem ter que baixar todos os objetos ObjectType do TableObject.
Também considerei o código a seguir, mas estava tentando encontrar uma maneira adequada:
List<int> keys = (from ObjType ot in TableObj orderby ot.Key select ot.Key).ToList<int>();
List<DateTime> values = (from ObjType ot in TableObj orderby ot.Key select ot.Value).ToList<int>();
Dictionary<int, DateTime> existingItems = new Dictionary<int, DateTime>(keys.Count);
for (int i = 0; i < keys.Count; i++)
{
existingItems.Add(keys[i], values[i]);
}