Linq to SQL Fremdschlüssel programmatisch umsetzen

by wmn 10. February 2010 22:24

In LinqtoSQL gibt es ein Problem, wenn man versucht Fremdschlüssel eines Datensatzes programmatisch umzusetzen, wenn es sich bei den beteiligten Tabellen um eine 1:n Beziehung handelt. In meinem Fall von heute ging es darum, den zugehörigen Parent-Datensatz “umzuhängen”.  Als Entwickler ist man geneigt einfach den Foreign-Key mit dem anderen Schlüssel zu ersetzen. In Linq führt das zu einer Exception:

image

image

Lösung:
Statt nur den Fremdschlüssel umzusetzen muss man die ganze Referenz umhängen indem man das neue, richtige Objekt zuweist. Linq löst hinter den Kulissen beim Speichern die IDs richtig auf und schreibt den geänderten Fremdschlüssel richtig weg. Auch in diesem Fall ist die Fehlermeldung nicht gerade sehr hilfreich!

Tags:

WPF | LINQ