Chcę dodać niektóre wiersze do bazy danych przy użyciu Linq do SQL, ale chcę wykonać „niestandardowe sprawdzenie” przed dodaniem wierszy, aby wiedzieć, czy muszę dodać, zamienić lub zignorować przychodzące wiersze. Chciałbym utrzymać ruch między klientem a serwerem DB na jak najniższym poziomie i zminimalizować liczbę zapytań.
Aby to zrobić, chcę pobrać tak mało informacji, jak jest to wymagane do weryfikacji i tylko raz na początku procesu.
Myślałem o zrobieniu czegoś takiego, ale oczywiście to nie działa. Czy ktoś ma pomysł?
Dictionary<int, DateTime> existingItems =
(from ObjType ot in TableObj
select (new KeyValuePair<int, DateTime>(ot.Key, ot.TimeStamp))
)
Na koniec chciałbym mieć Słownik, bez konieczności pobierania całych obiektów ObjectType z TableObject.
Rozważyłem również następujący kod, ale próbowałem znaleźć właściwy sposób:
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]);
}