Entity framework - relateret objekt oprettes i tabel
Jeg benytter code-fist entity framework, hvor jeg har en relation mellem tre klasser. Kunde, Kontaktperson, Titel.Relationen Kunde har mange Kontaktperson. Kontaktperson har en Titel. Titel har mange Kontaktperson. Titel kan betragtes her som en enum.
Mit problem er, at når jeg gemmer en ny Kunde inkl. ny relateret data, bliver Kunde, Kontaktpersoner og Titel indsat i database. Bortset fra Titel er dette som ønsket.
For at undgå at titel bliver oprettet i database, attacher jeg til kontekst hver titel for hver kontaktperson. Hvis en kunde har flere kontaktpersoner med samme titel, får jeg en fejl med at der allerede er en titel i kontekst. For at undgå dette, tjekker jeg om titel allerede er i kontekst inden jeg attacher. Dermed får jeg ikke en fejl, og den første titel bliver ikke oprettet i databasen. Det gør den næste dog. Hvad kan jeg gøre?
Min kode er her:
using (var context = new DB())
{
foreach (Kontaktperson kp in KontaktpersonerForKunde)
{
if(!context.Title.Local.Any(e=> e.TitleId==kp.Title.TitleId))
{
context.Title.Attach(kp.Title);
}
}
context.Kunde.Add(this);
context.SaveChanges();
}