tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
3
ZUGRIFFE
835
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    marcoD marcoD ist offline Mitglied
    Registriert seit
    Oct 2008
    Beiträge
    15
    Hallo zusammen!
    Ich habe ein kleines Problem mit meiner SQL-Datenbank...
    Ich versuche einen FK einer bereits geladenen Datenbank zu verändern. LINQ verhindert dies und spuckt folgende Exception aus: "ForeignKeyReferenceAlreadyHasValueException"
    Kann mir da jmd helfen? Habe schon so einiges versucht, finde aber den Fehler nicht.

    Zusammenfassung:
    -ConflictMode bereits versucht, keine Änderung bewirkt
    -Datenbindungen(an Steuerelemente) sind keine vorhanden
    -Es handelt sich um Adresse n:1 Land
    Adresse
    • ID(PK)
    • Straße
    • HausNr
    • Länderkennung(FK)

    Land
    • Länderkennung(PK)
    • Länderbezeichnung

    -ändern möchte ich dementsprechend "Länderkennung" in Adresse (von DE zu AT zB)


    hier mein Code:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
    public void ChangePAdresse(int id, string adresseStr, string adresseHnr, string adresseLnd)
    {                               
    Table<TAdresse> Adressen= db.GetTable<TAdresse>();
            IQueryable<TAdresse> Adresse =
                from ad in Adressen
                where ad.ID == id
                select ad;
     
            foreach (TAdresse ad in Adresse)
            {
                ad.strasse = adresseStr;
                ad.hausNr = adresseHnr;           
                ad.laenderkennung = adresseLnd;
            }
            db.SubmitChanges();
    }
    Geändert von marcoD (14.10.08 um 10:43 Uhr)
     

  2. #2
    marcoD marcoD ist offline Mitglied
    Registriert seit
    Oct 2008
    Beiträge
    15
    Keine Antworten? Ist meine Beschreibung unschlüssig oder ist die Problemstellung zu schwer?
    Vielleicht nen Tip an wen ich mich wenden könnte? Ohne diese FK-Änderung bin ich ziemlich aufgeschmissen...
     

  3. #3
    marcoD marcoD ist offline Mitglied
    Registriert seit
    Oct 2008
    Beiträge
    15
    Immer noch keine Antworten
    Scheinbar handelt es sich um ein "schwieriges" Problem. Finde es nur schade, dass nichtmal ein weiterführender Link gepostet wurde.
    Naja, hier kann dann wohl zu.
     

  4. #4
    marcoD marcoD ist offline Mitglied
    Registriert seit
    Oct 2008
    Beiträge
    15
    Habe mittlerweile die Antwort gefunden und möchte sie euch nicht vorenthalten.
    Man kann den FK nicht direkt ändern, da sonst eine Inkonsistenz zwischen geladenen Objekten entstehen kann.
    Aus diesem Grund, muss man ein komplettes Objekt übergeben und nicht nur ein Attributwert ändern.

    Also so:
    Wobei "Land" ein Objekt vom Typ TLand ist.
    Adresse.TLand = Land;
     

Ähnliche Themen

  1. C# LINQ to XML
    Von Azubis im Forum .NET Datenverwaltung
    Antworten: 1
    Letzter Beitrag: 06.12.10, 13:27
  2. Linq & Aliase
    Von Mel_One im Forum .NET Datenverwaltung
    Antworten: 1
    Letzter Beitrag: 28.01.10, 21:05
  3. [LINQ] Index by value
    Von StupidBoy im Forum .NET Café
    Antworten: 0
    Letzter Beitrag: 13.01.09, 18:39
  4. Linq VB2005
    Von bolshi im Forum .NET Datenverwaltung
    Antworten: 3
    Letzter Beitrag: 22.04.08, 15:25
  5. Linq in Silverlight
    Von Ange2204 im Forum .NET WPF & Silverlight
    Antworten: 0
    Letzter Beitrag: 01.04.08, 08:19