2009-07-28 13 views
1

Ich benutze Entity Data Model, aber ich habe ein Problem: Wenn eine Tabelle, z. B. Kunden categoryId (Fremdschlüssel aus der Tabelle Kategorie) hat es nicht in der Entity ???? also wie kann ich diesen Wert abrufen oder einstellen?Fremdschlüssel in Entität Datenmodell

Antwort

1

Das Entity Framework gibt die tatsächliche Eigenschaft selbst wieder, es wird eine Eigenschaft der Typkategorie erstellt. d.h .:

Customer.Category = new Category()

Das Entity Framework wird die Referenzen/Fremdschlüssel intern behandeln.

+0

OK, aber ich habe einen anderen Fremdschlüssel (Kategorie ParentId) in der Kategorie Tabelle (ParentId Fremdschlüssel aus KategorieID in der gleichen Tabelle) Wie kann ich dieses Feld bekommen? –

1

Colins Antwort ist 100% genau und wahr - für die derzeit verfügbare Version des Entity Framework (mit .NET 3.5 SP1).

Für die bevorstehende und noch nicht veröffentlichte EF v2 (oder EF 4 ??), die mit .NET 4.0 irgendwann in der Zukunft ausgeliefert wird, hat das EF-Team hinzugefügt, was sie "Fremdschlüssel-Verknüpfungen", die in Mit essence können Sie nur den Wert des Fremdschlüssels angeben (z. B. CategoryID), anstatt die gesamte zugehörige Entität erstellen/laden/zuweisen zu müssen.

Weiteres in diesen ausgezeichneten Beiträgen:

HAFTUNGSAUSSCHLUSS: dies ist Pre-Release-Informationen über ein noch nicht freigegebenes Produkt und ohne Lieferung Datum offiziell angekündigt - Sie können eine Beta1 für jetzt herunterladen.

Marc

+0

ok, aber ich habe einen anderen Fremdschlüssel (Kategorie ParentId) in der Kategorie Tabelle (ParentId Fremdschlüssel aus KategorieID in der gleichen Tabelle) Wie kann ich dieses Feld bekommen? –

+1

Sie würden dann Category.Category.Id (öffnen Sie das EF-Diagramm und wählen Sie die Kategorie Entity. Es sollte Ihnen eine Liste aller verfügbaren Eigenschaften.) – Colin

+0

@Wafaa: Wenn Sie auf die ParentID in der referenzierten Kategorie bekommen müssen, dann müssten Sie die gesamte Category-Entity laden und dann in dieser Entity die "ParentID" -Spalte setzen –

0

Kannst du es nicht so machen?

Customer.CategoryReference.EntityKey = Key; 
0

IF wollen Sie den Fremdschlüssel es selbst sehen Sie .NET Framework 4 nicht verwenden müssen weniger in .NET 3.5 Sie einen Verweis auf Fremdschlüssel der Klasse finden nicht der Fremdschlüssel es selbst

Store s = new Store(); 
       User u=s.User;//bring referance of the user with foreign key .net 3.5 & 4 
       int i = s.User_ID;//bring the user_id forein key .net 4 
Verwandte Themen