2009-03-27 7 views
1

Was ich mache funktioniert, aber es ist einfach falsch, ich weiß es.Wie lade ich ordnungsgemäß Objektreferenzen mit ADO.net Entity Framework

Profil.UserID ist ein FK, der an User.UserID gebunden ist. Daher wird Profile.UserID nicht vom Entity Framework in das Entity Model aufgenommen, weshalb meine linq-Abfrage zuerst das User-Objekt sucht und dann das zugehörige Profile-Objekt auswählt (was sich für mich sehr schmutzig anfühlt).

Kann mir jemand eine bessere Lösung bieten:

  1. Lookup das Profilobjekt über User.UserID.
  2. Laden Sie die Benutzerobjektreferenz in das zurückgegebene Profilobjekt.

Vielen Dank im Voraus!

Antwort

4

Versuchen Sie es mit der Include Methode

public Profile GetProfile(int id) 
{ 
    return (from p in db.Profiles.Include("User") 
      where p.User.UserId == id 
      select p).FirstOrDefault(); 
} 

Diese Methode das Profil-Objekt zurückgibt, mit der Referenz Benutzer bereits geladen.

+0

Zurück von dem, was ich wollte zurückgegeben, aber mit der Include-Methode und einer ähnlichen Syntax konnte ich mein Problem lösen. Danke Bendewey! – Kappers

+0

Funktioniert diese Abfrage für Ihr Szenario besser? – bendewey

+0

Ja, genau das habe ich auch geändert. – Kappers

Verwandte Themen