Je souhaite ajouter des lignes à une base de données à l'aide de Linq to SQL, mais je souhaite effectuer une "vérification personnalisée" avant d'ajouter les lignes pour savoir si je dois ajouter, remplacer ou ignorer les lignes entrantes. Je voudrais maintenir le trafic entre le client et le serveur DB aussi bas que possible et minimiser le nombre de requêtes.
Pour ce faire, je souhaite récupérer le moins d'informations nécessaires à la validation, et une seule fois au début du processus.
Je pensais faire quelque chose comme ça, mais évidemment, ça ne marche pas. Quelqu'un a une idée?
Dictionary<int, DateTime> existingItems =
(from ObjType ot in TableObj
select (new KeyValuePair<int, DateTime>(ot.Key, ot.TimeStamp))
)
Ce que j'aimerais avoir à la fin serait un dictionnaire, sans avoir à télécharger l'intégralité des objets ObjectType à partir de TableObject.
J'ai également considéré le code suivant, mais j'essayais de trouver un moyen approprié:
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]);
}