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]);
}
fuente
var servers = list.Select( s => new { s.ProjectName, Url = "tcp://" + s.BuildMachineName + ":" + s.PortNumber + "/CruiseManager.rem" } ).ToDictionary( s => s.ProjectName, s.Url );
esto creara un diccionario tecleado por el nombre del proyecto del nombre del proyecto / pares de url..Select( t => new { t.Key, t.TimeStamp } )
necesaria la expresión?.Select
hace que el SQL generado solo seleccione Key y TimeStamp, en lugar de seleccionar cada columna.Select
si está haciendo Linq to Object (en lugar de Linq to SQL)Mirando tu ejemplo, creo que esto es lo que quieres:
fuente
Intenta lo siguiente
O la versión inferenciada de tipo completo
fuente
Usar espacio de nombres
Hacer instancia de
DataContext
claseUtilizar
Para recuperar los valores, use el espacio de nombres
fuente