Frage

sollte man ein ADO.NET Entity Data Model für jede Tabelle benutzen? Oder man für die gesamte Datenbank, in die Beziehungen auch geroutet werden, etc ...

War es hilfreich?

Lösung

Machen Sie es für die gesamte Datenbank. Wenn Sie ein Datenmodell für jede Tabelle machen Sie nicht den Vorteil haben, die Beziehungen zu navigieren.

Wenn Sie Kasse verwenden / Merge Quellcodeverwaltung wie Subversion, beachten Sie, dass die Designer munges die XML in dem Maße, dass Subversion es zu verschmelzen kämpft. In diesem Fall müssen Sie in der Regel das gesamte Modell mit der Hand jedes Mal, oder verschmelzen regenerieren.

Andere Tipps

Ich verwende eine Entity Data Model für verknüpfte Tabellen. Je nach Größe der Datenbank würde ich nur ein Modell erstellen, wenn es weniger war als etwa 20 oder 25 Tabellen. Es ist ein bisschen teuer für einzelne Modelle für jede Tabelle zu erstellen, da jedes Modell ein EntityConnection Objekt erstellt werden.

Ich finde, ich kann die Modelle recht gut halten, wenn ich zwischen 5 und 15 Tabellen. Mein Haupt Entscheidend ist Funktionalität. Ich baue Engineering-Anwendungen, so zum Beispiel ich etwa 6 Tabellen von Stahlbaukomponenten haben. Sie sind alle in einem Modell. Sie teilen sich gemeinsame Engineering-Attribute so ist es einfacher, die Wiederverwendung von Code, die zu manipulieren diese Attribute spezifisch ist.

Das bedeutet, dass ich das Modell instanziieren, die Objekte erstellen, bearbeiten / die Objekte in einer gemeinsamen Code-Datei organisieren. Alle Änderungen, die in die Datenbank zurück propogated werden müssen, können sehr effizient durchgeführt werden.

In der unteren Zeile Ihrer Notwendigkeit und Häufigkeit der Verwendung für die zugrunde liegenden Objekte determinig. Wenn Ihr ständig sein werden Aktualisierung ein oder zwei Tabellen dann macht es keinen Sinn machen innerhalb dieses Modell 30 andere nicht-verwandten Tabellen zu haben. In diesem Szenario, in dem eine kleine Anzahl von Tabellen häufig verwendet wird, ist es sinnvoll Sammlungen dieser Objekte zu erstellen, die Sammlungen manipulieren und die Datenbank zu geeigneten Zeiten aktualisieren.

Speicher maipulation ist viel billiger als Disk-I / O auszuführen. Dies ist nur mein nehmen auf Rahmen und keineswegs bin ich ein Experte darin.

Ein für die gesamte Datenbank oder zumindest in den Tabellen, die Sie verwenden werden ...

Wenn Sie eine große Menge von Tabellen haben Sie können sie in Schemata brechen oder eine andere kategorische Art und Weise, aber ich würde sagen, dass die Idee nie Daten gewesen Modell pro Tabelle ...

Ich würde die Gestaltung ein konzeptionelles / Objektmodell der Daten unabhängig vom Datenbankschema und dann die Zuordnung erstellen, die das Konzeptmodell auf das Datenbankschema am besten bezieht. Es kann die meisten, wenn nicht alle Tabellen verwenden. Wenn Sie eine Eins-zu-Eins-Abbildung auf Tabellen möchten, können Sie LINQ-to-SQL statt zu betrachten, da es einfacher ist, mit zu arbeiten.

Zusätzlich zu den Antworten oben, im Kopf behalten, dass ein EF-Modell tatsächlich auf konzeptioneller Ebene ist. Es braucht nicht etwas mit der Struktur der Datenbank zu tun, und schon gar nicht die gesamte Datenbank repräsentieren muss.

Ich denke, Wenn Sie große Datenbank haben, dann müssen Sie die Datenbanktabellen kategorisieren. Aber Sie haben eine Klasse für jede Tabelle zu erstellen, die eine Hauptpflicht des ado.net Entity Framework ist.

Wenn Sie Datenbank aktualisieren, dann können Sie Update-Datenmodell tun mit.

Zuerst entwerfen Sie Ihre Datenbank dann ado.net Entitätsmodell erstellen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top