Ich habe die folgenden Objekte in meinem Projekt. Das "Gast" -Objekt kann viele "Aufenthalt" -Objekte haben und das "Aufenthalt" -Objekt kann viele "Mitreisender" -Objekte haben. Jeder "Mitreisender" kann nur einem "Aufenthalt" zugeordnet werden und jeder "Aufenthalt" kann nur einem Gast zugeordnet werden.Entityframework ID nicht gesetzt
Wenn ich Button2 klicken dann funktioniert alles, aber nur die ID für den "Gast" ist Null in dem Aufenthalt ..
public class Gast
{
public int GastID { get; set; }
public string Anrede { get; set; }
public string Titel { get; set; }
public string Vorname { get; set; }
public string Nachname { get; set; }
public virtual List<Aufenthalt> Aufenthalte {get; set;}
public Gast()
{
Aufenthalte = new List<Aufenthalt>();
}
}
public class Mitreisender
{
public int MitreisenderID { get; set; }
public string Anrede { get; set; }
public string Titel { get; set; }
public string Vorname { get; set; }
public string Nachname { get; set; }
public DateTime Geburtstag { get; set; }
public virtual Aufenthalt Aufenthalt { get; set; }
}
public class Aufenthalt
{
public int AufenthaltID { get; set; }
public DateTime Anreisedatum { get; set; }
public DateTime Abreisedatum { get; set; }
public virtual List<Mitreisender> Mitreisende { get; set; }
public virtual Gast Gast { get; set; }
public Aufenthalt()
{
Mitreisende = new List<Mitreisender>();
}
}
meine DbContext
[DbConfigurationType(typeof(MySqlEFConfiguration))]
class GastContext : DbContext
{
public DbSet<Gast> Gaeste { get; set; }
public DbSet<Aufenthalt> Aufenthalte { get; set; }
public DbSet<Mitreisender> Mitreisende { get; set; }
}
meine Taste
private void button2_Click(object sender, EventArgs e)
{
using (var db = new GastContext())
{
Aufenthalt aufenthalt = new Aufenthalt();
aufenthalt.Anreisedatum = dtp_aufenthalt_anreise.Value;
aufenthalt.Abreisedatum = dtp_aufenthalt_abreise.Value;
foreach (ListViewItem lvi in lv_aufenthalt_mitreisende.Items)
{
Mitreisender m = new Mitreisender
{
Anrede = lvi.SubItems[0].Text,
Vorname = lvi.SubItems[1].Text,
Nachname = lvi.SubItems[2].Text
};
db.Mitreisende.Add(m);
aufenthalt.Mitreisende.Add(m);
}
currentGast.Aufenthalte.Add(aufenthalt);
db.Aufenthalte.Add(aufenthalt);
db.SaveChanges();
MessageBox.Show("Aufenthalt wurde angelegt");
}
}
Wie bekommt 'currentGast' seinen Wert? – haim770