An entity object cannot be referenced by multiple instances of IEntityChangeTracker.

  • C#

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von windowsfan.

    An entity object cannot be referenced by multiple instances of IEntityChangeTracker.

    Hallo,

    ich arbeite mich gerade in das entityframework ein. Bin aber nicht sehr weit gekommen bis zur ersten fehlermeldung die ich nicht wegbekomme.

    Was bisher schon funktioniert:
    - Gast speichern
    - Gäste auslesen

    Ich versuche nun zu einem gast einen aufenthalt hinzufügen (anreisedatum, abreisedatum, mitreisende (anrede, vorname, nachname))
    Da bekomm ich aber bei

    C#-Quellcode

    1. db.Aufenthalte.add(aufenthalt)


    diese Fehlermeldung:
    An entity object cannot be referenced by multiple instances of IEntityChangeTracker.




    C#-Quellcode

    C#-Quellcode

    1. private void button2_Click(object sender, EventArgs e)
    2. {
    3. using (var db = new GastContext())
    4. {
    5. Aufenthalt aufenthalt = new Aufenthalt();
    6. aufenthalt.Anreisedatum = dtp_aufenthalt_anreise.Value;
    7. aufenthalt.Abreisedatum = dtp_aufenthalt_abreise.Value;
    8. aufenthalt.Gast = currentGast;
    9. foreach (ListViewItem lvi in lv_aufenthalt_mitreisende.Items)
    10. {
    11. Mitreisender m = new Mitreisender
    12. {
    13. Anrede = lvi.SubItems[0].Text,
    14. Vorname = lvi.SubItems[1].Text,
    15. Nachname = lvi.SubItems[2].Text,
    16. };
    17. db.Mitreisende.Add(m);
    18. aufenthalt.Mitreisende.Add(m);
    19. }
    20. db.Aufenthalte.Add(aufenthalt);
    21. db.SaveChanges();
    22. MessageBox.Show("Aufenthalt wurde angelegt");
    23. }
    24. }



    C#-Quellcode

    1. public class Gast
    2. {
    3. public int GastID { get; set; }
    4. public string Anrede { get; set; }
    5. public string Titel { get; set; }
    6. public string Vorname { get; set; }
    7. public string Nachname { get; set; }
    8. public DateTime Geburtstag { get; set; }
    9. public string Strasse { get; set; }
    10. public int Hausnummer { get; set; }
    11. public int Postleitzahl { get; set; }
    12. public string Ort { get; set; }
    13. public string Land { get; set; }
    14. public string Notizen { get; set; }
    15. public virtual List<Aufenthalt> Aufenthalte {get; set;}
    16. }
    17. [DbConfigurationType(typeof(MySqlEFConfiguration))]
    18. class GastContext : DbContext
    19. {
    20. public DbSet<Gast> Gaeste { get; set; }
    21. public DbSet<Aufenthalt> Aufenthalte { get; set; }
    22. public DbSet<Mitreisender> Mitreisende { get; set; }
    23. }
    24. public class Aufenthalt
    25. {
    26. public int AufenthaltID { get; set; }
    27. public DateTime Anreisedatum { get; set; }
    28. public DateTime Abreisedatum { get; set; }
    29. public virtual List<Mitreisender> Mitreisende { get; set; }
    30. public virtual Gast Gast { get; set; }
    31. public Aufenthalt()
    32. {
    33. Mitreisende = new List<Mitreisender>();
    34. }
    35. }
    36. public class Mitreisender
    37. {
    38. public int MitreisenderID { get; set; }
    39. public string Anrede { get; set; }
    40. public string Titel { get; set; }
    41. public string Vorname { get; set; }
    42. public string Nachname { get; set; }
    43. public DateTime Geburtstag { get; set; }
    44. public virtual Aufenthalt Aufenthalt { get; set; }
    45. }