it-swarm.com.de

EntityFramework VS reines Ado.Net

EF ist ein so weit verbreitetes Personal, aber ich weiß nicht, wie ich es verwenden sollte. Ich habe mit ef viele Probleme mit verschiedenen Projekten mit unterschiedlichen Ansätzen getroffen. Also einige Fragen in meinem Kopf zusammengebracht. Und Antworten führen mich dazu, reines ado.net mit gespeicherten Prozeduren zu verwenden. .__ Die Fragen sind also:

  1. Wie gehe ich mit EF in einer n-stufigen Anwendung um? Zum Beispiel haben wir eine DAL mit EF. Ich habe viele Artikel und Projekte gesehen, die Repository, Unitofwork-Muster als eine Art Abstraktion für EF verwendeten. Ich denke, dass ein solcher Ansatz die meisten Vorteile zunichte macht, die die Entwicklungsgeschwindigkeit erhöhen und zu wenigen Dingen führen:
    • die Neuzuordnung von EF-Ladevorgängen führt zu DTO, das die Leistung abbricht (Aufruf select, um Tabellendaten abzurufen - erste Schleife, zweite Schleife - Zuordnungsergebnisse zu einem von ef generierten zusammengesetzten Typ, filtern Sie die zugeordneten Daten mit linq und filtern Sie sie schließlich zu einigen DTO). Genau auf DTO umzuschalten ist der Killer eines der größten Vorteile von efs.
      oder
    • führt zu starken Zusammenhängen zwischen EF (und seiner Version ) und App. Es wird so etwas wie eine 2-stufige App mit Dal und Präsentation mit bll oder dal mit bll und Präsentation sein. Ich denke, das ist nicht die beste Praxis. Und derselbe Ladevorgang, den wir für das vorherige haben, außer das Mapping, also wurde wieder ein Leistungsproblem angesprochen. Wir könnten versuchen, EF als DAL ohne Abstraktion unter ihnen zu verwenden. Auf andere Weise werden wir ähnliche Probleme bekommen. 
  2. Soll ich einen Kontext pro App\Thread\Atomic-Operation verwenden? Die Verwendung eines Ansatzes - ein Kontext pro App\Thread kann die Leistung und die Möglichkeiten zum Aufrufen von Navigationseigenschaften geringfügig erhöhen. Wir haben jedoch ein anderes Problem - das Aktualisieren dieses Kontexts und das Wachsen geladener Daten im Kontext. Außerdem bin ich mir nicht sicher, ob Parallelität mit einem Dbcontext pro Anwendung vorhanden ist. Faden. Die Verwendung von Kontext pro Vorgang führt dazu, dass die Ergebnisse unseren DTOs zugeordnet werden. Sie sehen also, dass wir erneut auf Frage Nr. 1 zurückgegriffen haben.

  3. Könnten wir versuchen, nur EF + SPs zu verwenden? Wieder haben wir Probleme aus vorherigen Fragen. Was ist der Grund, ef zu verwenden, wenn der größte Teil der Funktionalität nicht verwendet wird? 

Ja, EF ist großartig, um mit dem Projekt zu beginnen. Es ist so praktisch, wenn wir wenige Bildschirme und grobe Operationen haben. Aber was kommt als nächstes? 

Der ganze Text ist nur unsortierte Gedanken. Ich weiß, dass das reine ado.net zu anderen Herausforderungen führt. Also, wie ist Ihre Meinung zu diesem Thema?

27
Crossman

Wenn Sie sich an die Namenskonventionen halten, werden Sie Folgendes finden: ADO.NET Entity Framework. Dies bedeutet, dass sich Entity Framework auf ADO.NET befindet, sodass es nicht schneller sein kann. Es kann beides gleichzeitig ausführen, aber schauen wir uns das an EF bietet: 

  • Sie werden nicht länger beim Schreiben von Abfragen stecken bleiben, ohne einen Hinweis darauf zu haben, ob das, was Sie schreiben, kompiliert wird oder nicht.
  • Sie müssen sich daher auf C # oder Ihre bevorzugte .NET-Sprache verlassen, wenn Sie Ihre eigenen Dateneinschränkungen schreiben, die Sie vom Zielbenutzer direkt in Ihren Modellklassen akzeptieren möchten. 

Zum Schluss: EF und LINQ geben Ihnen die Möglichkeit, Ihre Anwendungen später zu verwalten. 

Es gibt drei verschiedene Modelle für das Entity Framework: Model First, Database First und Code First. Lernen Sie jedes von ihnen kennen. 

-Der Punkt beim Beenden der Leistung beim Remapping ist der Prozess, weil EF beim ersten Durchlauf Metadaten in den Speicher lädt und dies Zeit in Anspruch nimmt, da im Modell eine Modelldarstellung aus der edmx-Datei erstellt wird.

18
user2245758

ADO. Net ist ein objektorientiertes Framework, mit dem Sie mit Datenbanksystemen (SQL, Oracle usw.) interagieren können .. Entity Framework ist ein Verfahren zum Manipulieren von Daten in Datenbanken wie (Sammlung von Abfragen (Inert-Tabellenname, Auswahl *) )) . wird mit LINQ verwendet. 

0
Zeeshan Haider