Convertir Linq Query Result en Diccionario


Quiero agregar algunas filas a una base de datos usando Linq to SQL, pero quiero hacer una "comprobación personalizada" antes de agregar las filas para saber si debo agregar, reemplazar o ignorar las filas que vienen. Me gustaría mantener el tráfico entre el cliente y el servidor de base de datos lo más bajo posible y minimizar el número de consultas.

Para hacer esto, quiero obtener tan poca información como sea necesaria para la validación, y solo una vez al comienzo del proceso.

Estaba pensando en hacer algo como esto, pero obviamente, no funciona. Alguien tiene una idea?

Dictionary<int, DateTime> existingItems = 
    (from ObjType ot in TableObj
        select (new KeyValuePair<int, DateTime>(ot.Key, ot.TimeStamp))
    )

Lo que me gustaría tener al final sería un diccionario, sin tener que descargar todos los objetos ObjectType de TableObject.

También consideré el siguiente código, pero estaba tratando de encontrar una manera adecuada:

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]);
}

Warning: Undefined property: agent_blog_content::$date_asked in /var/www/agent_etc/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 32

Warning: Undefined property: agent_blog_content::$count_answers in /var/www/agent_etc/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 52