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]);
}
quelle
var servers = list.Select( s => new { s.ProjectName, Url = "tcp://" + s.BuildMachineName + ":" + s.PortNumber + "/CruiseManager.rem" } ).ToDictionary( s => s.ProjectName, s.Url );
ein Wörterbuch erstellt wird, das durch den Projektnamen der Projektnamen / URL-Paare verschlüsselt ist..Select( t => new { t.Key, t.TimeStamp } )
Ausdruck notwendig?.Select
bewirkt, dass das generierte SQL nur Key und TimeStamp auswählt, anstatt jede Spalte auszuwählen.Select
wenn Sie Linq to Object (anstelle von Linq to SQL)Wenn Sie sich Ihr Beispiel ansehen, denke ich, dass Sie Folgendes wollen:
quelle
Versuche Folgendes
Oder die vollwertige, vom Typ abgeleitete Version
quelle
Verwenden Sie den Namespace
Instanz von
DataContext
Class erstellenVerwenden
Verwenden Sie zum Abrufen der Werte den Namespace
quelle