myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
   » Plugin für Firefox
   » Plugin für IE
   » Gadget für Windows
» Regeln
» Wie poste ich richtig?
» Datenschutzerklärung
» wbb-FAQ

Mitglieder
» Liste / Suche
» Stadt / Anleitung dazu
» Wer ist wo online?

Angebote
» ASP.NET Webspace
» Bücher
» Zeitschriften
   » dot.net magazin

Ressourcen
» guide to C#
» openbook: Visual C#
» openbook: OO
» MSDN Webcasts
» Search.Net

Team
» Kontakt
» Übersicht
» Wir über uns
» Impressum

» Unsere MiniCity
MiniCity
» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » Datentechnologien » Ist beim Entity Framework das Singleton-Pattern Best-Practice?
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

Ist beim Entity Framework das Singleton-Pattern Best-Practice?

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Christoph K. Christoph K. ist männlich
myCSharp.de-Mitglied

images/avatars/avatar-3248.png


Dabei seit: 15.02.2009
Beiträge: 777
Entwicklungsumgebung: VS 2010
Herkunft: Köln


Christoph K. ist offline Füge Christoph K. Deiner Kontaktliste hinzu

Ist beim Entity Framework das Singleton-Pattern Best-Practice?

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

verwendetes Datenbanksystem: MSSQL EF6

Hi zusammen,

ich wollte mal kurz nachhorchen, was mittlerweile BestPractise im Bereich EF-Context erzeugen ist.
Vor ein paar Jahren habe ich hier im Forum gelernt, das man immer (bei jedem ASP.NET Request) den EF-Context neu erzeugen soll. Eigentlich hieß es sogar, man sollte ihn immer neu erzeugen und so kurz wie möglich am Leben lassen.

Nun sehe ich teilweise im Netz Codeschnpsel, wo die Leute nur einen Context erzeugen und diesen mit Hifle eines Singletons verwalten.

Hat sich die BestPractise da mittlerweile geändert ?

Gruß
Christoph
10.08.2017 17:14 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Palin Palin ist männlich
myCSharp.de-Mitglied

Dabei seit: 22.08.2011
Beiträge: 894
Entwicklungsumgebung: VB.net


Palin ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Meines Wissens hat sich da nichts geändert.

Und bei einer Webanwendung möchte ich dir ganz dringend von einem SingelTon Abraten.
(Was glaubst du was Passiert wenn 1000 Leute aus Unterschiedlichen Threads auf den SingelTon zugreifen)


Bei EF kannst du dir mal das Repository Pattern anschauen (das ist da meist so der Standart) oder auch die UnitOfWork.
10.08.2017 17:29 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Abt
myCSharp.de-Team

images/avatars/avatar-2981.png


Dabei seit: 20.07.2008
Beiträge: 10.475
Herkunft: Süddeutschland


Abt ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Das hat nichts mit EF direkt zutun, sondern mit ADO.NET.
Ich kann mir hier aber gut vorstellen, dass Du einige Technologien vermischt (ASP vs WPF).

Keiner der Kontexte von ADO.NET ist Thread-Safe und daher auch nicht bei EF.
Context Sharing bei ASP.NET ist falsch - ohne Wenn und Aber. Anders sieht es aus bei Single Thread Applications.
An der Stelle dann nochmal ein Hinweis, wie im anderen Thread, auf die Grundlagen von Webanwendungen und Desktopanwendungen was Threads und Co betrifft.

Wie bereits auch im anderen Thread geschrieben:
Schlag Dir das Thema "Generell Singleton" aus dem Kopf, denn das brauchst Du in 99,999% der Fälle nicht und begehst damit eher einen Fehler, als dass Du etwas besser machst.
Wenn Du tatsächlich ein Objekt dauerhaft brauchst, dann mach das über Dependency Injection Konfigurationen und nicht mit (wie im letzten Thread) technisch falschen Singleton Implementierungen.
10.08.2017 17:33 Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als 2 Monate.
Der letzte Beitrag ist älter als 2 Monate.
Antwort erstellen


© Copyright 2003-2017 myCSharp.de-Team. Alle Rechte vorbehalten. 20.10.2017 05:26