Ich möchte einer Datenbank mit Linq to SQL einige Zeilen hinzufügen, aber ich möchte vor dem Hinzufügen der Zeilen eine "benutzerdefinierte Prüfung" durchführen, um festzustellen, ob ich die eingehenden Zeilen hinzufügen, ersetzen oder ignorieren muss. Ich möchte den Verkehr zwischen dem Client und dem DB-Server so gering wie möglich halten und die Anzahl der Abfragen minimieren.
Dazu möchte ich so wenig Informationen abrufen, wie für die Validierung erforderlich sind, und zwar nur einmal zu Beginn des Prozesses.
Ich habe darüber nachgedacht, so etwas zu tun, aber offensichtlich funktioniert es nicht. Hat jemand eine Idee?
Dictionary<int, DateTime> existingItems =
(from ObjType ot in TableObj
select (new KeyValuePair<int, DateTime>(ot.Key, ot.TimeStamp))
)
Am Ende hätte ich gerne ein Wörterbuch, ohne die gesamten ObjectType-Objekte von TableObject herunterladen zu müssen.
Ich habe auch den folgenden Code in Betracht gezogen, aber ich habe versucht, einen richtigen Weg zu finden:
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]);
}