2009-08-20 9 views
0

Ich möchte ein neues Objekt mit der FK-Referenz für die Entität in einer anderen Tabelle erstellen. Es ist nur eine einfache Erstellungsansicht, aber ich weiß nicht, wie ich die Forschungseinheit mit ID == id referenzieren soll.Verwendung der Objektreferenz in Entity Framework

public ActionResult Create(int id) 
    { 
     SurveyPaper surveyPaper = new SurveyPaper(); 

     return View(surveyPaper); 
    } 

    [AcceptVerbs(HttpVerbs.Post)] 
    public ActionResult Create(int id, FormCollection collection) 
    { 
     var surveyPaper = new SurveyPaper(); 

     try { 
      UpdateModel(surveyPaper); 
      surveyPaper.Research.ResearchID = id; 
      _r.AddSurveyPaper(surveyPaper); 

      return RedirectToAction("Details", new { id = surveyPaper.SurveyPaperID }); 
     } 
     catch { 
      return View(surveyPaper); 
     } 
    } 

Antwort

1

In .NET 3.5 SP 1:

// obviously, substitute your real entity set and context name below 
surveyPaper.ResearchReference.EntityKey = 
    new EntityKey("MyEntities.ResearchEntitySetName", "ResearchID", id); 

In .NET 4.0, statt FK Verbände verwenden.

+0

sollte ich dies in Datenschicht oder in controler tun? – Ante

+0

IMHO würde der Controller wirklich besser tun, um Kenntnisse der EF zu vermeiden. Also für die 3.5 Lösung, vermeiden Sie es in der Steuerung. OTOH, die 4.0-Lösung würde entweder funktionieren, da FK-Assoziationen nicht wirklich so EF-spezifisch sind. –

+0

tnx man, das hilft wirklich! – Ante

Verwandte Themen