Voglio aggiungere alcune righe a un database usando Linq to SQL, ma voglio fare un "controllo personalizzato" prima di aggiungere le righe per sapere se devo aggiungere, sostituire o ignorare le righe in entrata. Vorrei mantenere il traffico tra il client e il server DB il più basso possibile e ridurre al minimo il numero di query.
Per fare ciò, voglio recuperare tutte le informazioni necessarie per la convalida e solo una volta all'inizio del processo.
Stavo pensando di fare qualcosa del genere, ma ovviamente non funziona. Qualcuno ha un'idea?
Dictionary<int, DateTime> existingItems =
(from ObjType ot in TableObj
select (new KeyValuePair<int, DateTime>(ot.Key, ot.TimeStamp))
)
Quello che vorrei avere alla fine sarebbe un dizionario, senza dover scaricare tutti gli oggetti ObjectType da TableObject.
Ho anche considerato il seguente codice, ma stavo cercando di trovare un modo corretto:
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]);
}