2009-08-20 6 views
0

Je souhaite créer un nouvel objet avec la référence FK sur l'entité dans une autre table. C'est juste une simple vue de création mais je ne sais pas comment référencer l'entité de recherche avec ID == id.Utilisation de la référence d'objet dans 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); 
     } 
    } 

Répondre

1

Dans .NET 3.5 SP 1:

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

Dans .NET 4.0, utilisez FK associations à la place.

+0

est-ce que je devrais faire ceci dans la couche de données ou dans le contrôleur? – Ante

+0

IMHO le contrôleur ferait vraiment mieux d'éviter d'avoir connaissance de l'EF. Donc, pour la solution 3.5, évitez de le faire dans le contrôleur. OTOH, la solution 4.0 fonctionnerait n'importe où, car les associations FK ne sont pas vraiment spécifiques à EF. –

+0

tnx homme, cela aide vraiment! – Ante