2008-12-03 12 views
7

Weiß jemand, ob es möglich ist, nicht die Navigationseigenschaften Feature des Entity-Framework für Tabellen mit einem Fremdschlüssel verknüpft?* Nicht * Navigationseigenschaften mit Entity Framework verwenden?

Wenn meine Client-Tabelle beispielsweise eine AddressId hat, möchte ich diese AddressId in meinem Modell haben, ich möchte nicht, dass sie eine .Address-Eigenschaft hat. Aber ich bin bisher nicht in der Lage, das herauszufinden.

+0

für diejenigen, die dies über die Suche konfrontiert ... das war schon eine Weile her. Neuere Versionen des Entity Framework haben keine Probleme damit :-) –

+0

Bist du sicher? Weil ich versucht habe, dasselbe zu tun: Ich entfernte meine Navigationseigenschaften und ließ stattdessen nur skalare Werte zurück, aber sobald ich das Modell aktualisierte, wurden alle Navigationseigenschaften wiederhergestellt. –

Antwort

6

Sicher, Sie können dies tun. Es ist nur so, dass der Designer dir nicht sehr helfen wird. Löschen Sie die Navigationseigenschaft, und fügen Sie eine Skalareigenschaft für AddressId hinzu. Es wird funktionieren, aber Sie müssen vorsichtig sein, wenn Sie im Designer auf Update Model klicken, da es versuchen könnte, Dinge für Sie zu "reparieren". Es lohnt sich, sich an EDMX zu gewöhnen; ist doch nicht so schlimm.

+0

weitere Ressourcen zum manuellen Bearbeiten von edmx? –

+0

Was genau suchen Sie? In der gesamten frühen Entity Framework-Dokumentation ging es darum, die XML-Dateien manuell zu bearbeiten, da es zu diesem Zeitpunkt noch keinen Designer gab. Das einzige, was sich seitdem geändert hat, sind die drei separaten Dateien, die in eine EDMX-Datei gerollt wurden. –

+0

Kennt jemand irgendwelche Lösungen, um Navigationseigenschaften zu entfernen/zu verstecken und weiter ihre Wiederherstellung mit Modellaktualisierung zu verhindern, oder sogar 3 Jahre später muss ich Modell manuell ändern? Es macht mir nichts aus, das Modell manuell zu bearbeiten, aber es ist jetzt wirklich riesig, einfacher und schneller zu verwenden. Designer =) –

0

Im Designer können Sie die Navigationseigenschaften als private Getter/Setter festlegen. Während sie immer noch dort sind, weil Entity Framework (standardmäßig) lazy loading, wird es tatsächlich keine Daten aus der Datenbank zur Laufzeit abrufen. Und sie werden beim nächsten Aktualisieren des Modells aus der Datenbank nicht erneut angezeigt.

Verwandte Themen