2016-08-10 4 views

Antwort

3

Der EF Core beschränkt nicht die Anzahl der Entitätstypen, die einem Modell hinzugefügt werden können. Modelle mit einer hohen Anzahl von Entitätstypen wirken sich nur auf die Leistung der anfänglichen Modellerstellung aus, aber dieses Modell wird zwischengespeichert, sodass die Erstellung nur einmal pro Kontexttyp erfolgt.

Was sich jedoch nicht von EF6 geändert hat, ist, dass die Verwendung von LINQ-Abfragen in stark verbundenen Graphen vieler verwandter Entitätstypen zu langsamem, komplexem oder fehlerhaftem Verhalten führen kann.

Weitere Informationen: Kasse https://docs.efproject.net/en/latest/efcore-vs-ef6/ für weitere Informationen zum Vergleich EF Core und EF 6 und https://docs.efproject.net/en/latest/modeling/ für weitere Informationen zur Modellierung Ihrer Datenbank.

+0

Nun, aber die anfängliche Modellerstellung erfolgt für jeden Thread, richtig? Kann ich den Kontext laden, der für alle meine Website-Anfragen geladen werden soll? –

+0

Zweiteilige Frage. (1) Das zwischengespeicherte Modell ist ein Singleton (pro Prozess). (2) Angenommen, Sie sprechen über ASP.NET, sollten Sie keine DbContext-Instanz für Webanfragen freigeben. Wenn Optionen und Modellbildung zwischengespeichert werden, zahlen Sie keinen Perf Treffer, indem Sie pro Anforderung einen neuen Kontext erstellen. Weitere Informationen zum Lebenszyklus von Diensten finden Sie unter https://docs.asp.net/en/latest/fundamentals/dependency- injection.html. – natemcmaster

+0

Perfekt, also sollte ich große Modelle vermeiden, um die Ladezeit in meinen Anfragen zu vermeiden. Tks! –

Verwandte Themen