Ist Entity Framework für größere Datenbanken geeignet?

8

Ich habe das Entity-Framework mit einer Datenbank mit ungefähr 50 Tabellen verwendet und es hat gut funktioniert.

Aber um zu sehen, was mit einer größeren Datenbank in Bezug auf die Anzahl der Tabellen / Entitäten passiert, habe ich versucht das Entity Framework in eine Datenbank zu implementieren, die über 100 Tabellen hat. Nachdem ich alle Tabellen ausgewählt und im Entity Framework Wizard auf die Schaltfläche Finish geklickt habe, habe ich meinen VS 2010 gehängt, so dass ich keine Ergebnisse erhalten konnte.

Meine Fragen sind wie folgt;

1.Wenn ich eine größere Datenbank in Bezug auf Tabelle / Entitäten wie oben beschrieben habe, ist es eine gute Idee, Entity Framework zu verwenden?

2. Was wird die bessere Annäherung mit Entity Framework sein, um mit der Datenbank zu arbeiten?

3.Ich erstelle mehrere DataContext- oder EDMX-Dateien mit geringeren Übereinstimmungen?

4.Wie werden diese verschiedenen DataContext miteinander interagieren?

5. Gibt es empfohlene Tabellen, die während der Arbeit mit Entity Framework verwendet werden sollten?

    
Shailender Singh 09.02.2011, 14:59
quelle

4 Antworten

6

@Will ist korrekt, dass die Einschränkung, die Sie sehen, im Designer liegt, aber es ist nicht die einzige, also beseitigt Code-First das Problem nicht unbedingt.

Wenn der Designer langsam scheint, ist es unbequem, aber nicht das Ende der Welt. Überlegungen zur Laufzeitleistung sind eine ganz andere Sache. Für performancekritische Aufgaben und Optimierungen sollten Sie verstehen die ganze Pipeline .

Die Erzeugung von Ansichten benötigt z. B. Zeit. Sie können dies mit manueller Arbeit zur Kompilierzeit verschieben.

  

1.Wenn ich eine größere Datenbank in Bezug auf Tabelle / Entitäten wie oben beschrieben habe, ist es eine gute Idee, Entity Framework zu verwenden?

Ich würde es auf jeden Fall nicht aufhalten.

  

2.Was ist die bessere Lösung, wenn Sie Entity Framework für die Arbeit mit der Datenbank verwenden?   3.Sollte ich mehrere DataContext- oder EDMX-Dateien mit geringeren Übereinstimmungen erstellen?

Das ist sicherlich ein guter Ansatz für viele Anwendungen.

  

4.Wie werden diese verschiedenen DataContext miteinander interagieren?

Meistens nicht. Oft gibt es ein einziges riesiges Datenmodell eine schlechte Idee wegen Service-Kopplung. Sie können sie jedoch selektiv koppeln, indem Sie Teile des Modells mit Includes in EDMX oder Klassen in Code-First teilen.

5. Gibt es empfohlene Tabellen, die während der Arbeit mit Entity Framework verwendet werden sollten?

Eine Möglichkeit besteht darin, kleinere Modelle zu verwenden, wie Sie es vorgeschlagen haben. Eine andere Möglichkeit ist es, Probleme mit der Laufzeitperformance zu umgehen, die manchmal bei größeren Modellen auftreten (siehe die obigen Links). Wie bei allen möglichen Performance- "Problemen" schreiben Sie zuerst den korrekten Code, dann profilieren und reparieren Sie die langsamen Teile. In der Regel ist die Abfrageoptimierung wichtiger als die Modellgröße.

    
Craig Stuntz 09.02.2011, 21:24
quelle
2

EF, wahrscheinlich ja. Das Toolset in Visual Studio? Nicht so sehr, anscheinend. Für eine so große Datenbank möchten Sie vielleicht Code zuerst.

    
Will 09.02.2011 15:03
quelle
0

Ich denke, EF selbst hat keine Leistungseinschränkungen für die Zählung von Tabellen, sondern für die Zählung von Datensätzen in bestimmten Tabellen. Sie müssen eine manuelle Objekt-DB-Beziehung (d. H. Manuelle Schreibklassen für Tabellen und entsprechende Attribute) ausführen, um von Konstruktionsproblemen in VS10 wegzugehen. Es ist klar, Ansatz in Hibernate, aber in EF wahrscheinlich nicht.

    
Jamon 09.02.2011 15:07
quelle
-1

Entity Framework ist der beste Weg, um Datenbankanwendungen zu entwickeln. Ich habe meine Anwendungen mit LINQ to SQL entwickelt, aber da Microsoft dies in Zukunft nicht mehr unterstützt, empfiehlt es die Verwendung von Entity Framework. Übrigens hat Entity Framework 4 in .NET 4 eine viel bessere Performance als frühere Versionen. Ich entwickle gerade eine Unternehmensanwendung mit Entity Framework und es unterstützt alle meine Bedürfnisse. Ich schlage vor, Entity Framework zu verwenden.

    
Mohammad M. Ramezanpour 09.02.2011 15:04
quelle