2012-03-27 15 views
1

immer diese Fehlermeldung geändert, wenn versuchen, ein Element in meine Repositories/Kontext hinzuzufügen:EF-Code Erstens: Die Sammlung wurde

Sammlung wird geändert. Möglicherweise wird die Inventarisierung nicht ausgeführt.

Was ich versuche Methode zu tun

Campaign c = Campaignrepository.FindById(id); 
if (c.LandingPage == null) 
{ 
    c.LandingPage = new Page() { Campaign = c, CampaignID = c.Campaignid }; 
    PageRepository.Add(c.LandingPage); 
} 
if (c.RedeemPage == null) 
{ 
    c.RedeemPage = new RedeemPage() { Campaign = c, CampaignID = c.Campaignid }; 
    PageRepository.Add(c.RedeemPage); 
} 

Das Repository hinzufügen:

public void Add(Page p) 
{ 
    pages.Add(p); 
    context.SaveChanges(); 
} 

Update: noch gleichen Fehler.

Nach den Vorschlägen der Anwendung:

public ActionResult Edit(int id) 
{ 
    Campaign c = Campaignrepository.FindById(id); 
    Campaign newreferenceC = Campaignrepository.FindById(id); 
    if (c.LandingPage == null) 
    { 
     c.LandingPage = new Page() { Campaign = newreferenceC, CampaignID = newreferenceC.Campaignid }; 
     PageRepository.Add(c.LandingPage); 
    } 
    if (c.RedeemPage == null) 
    { 
     c.RedeemPage = new RedeemPage() { Campaign = newreferenceC, CampaignID = newreferenceC.Campaignid }; 
     PageRepository.Add(c.RedeemPage); 
    } 
    return View("Edit", Campaignrepository.FindById(id)); 
} 

Antwort

0

manged zu fixieren mit:

 Page landingPage = new Page(c); 
     RedeemPage redeemPage = new RedeemPage(c); 
     PageRepository.Add(landingPage); 
     PageRepository.Add(redeemPage); 
     c.LandingPage = landingPage; 
     c.RedeemPage = redeemPage; 
     Campaignrepository.Update(c); 
Verwandte Themen