Quiero agregar algunas filas a una base de datos usando Linq to SQL, pero quiero hacer una "verificación personalizada" antes de agregar las filas para saber si debo agregar, reemplazar o ignorar las filas entrantes. 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 la menor cantidad de información 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]);
}