2011-01-08 18 views
0

Ich verwende ein statisches Feld in dieser Situation, weil ich denke, es ist zeitaufwendig, das Objekt bei jeder Anfrage neu zu erstellen.Ist es eine schlechte Übung, ein statisches Feld zu haben?

private static AnalysedCompanies db = new AnalysedCompanies(); 

public class AnalysedCompanies:DbContext 
    { 
...  

    } 

Ich verwende zuerst Entity Framework-Code.

als ich Methoden zum Speichern und Laden von Daten aus der Datenbank durch die DB-Objekt haben. Wird das statische DB-Objekt einen Engpass verursachen? Ist das richtig?

Antwort

2

In einer ASP.net-Webanwendung werden Static von allen Benutzern geteilt, also ja, das ist ziemlich schlecht, weil es bedeutet, dass Benutzer A möglicherweise Daten sehen/ändern kann, die Benutzer B sieht und zu allen möglichen Kopfschmerzen führt.

Statische Felder sind für statische Daten geeignet, dh Daten, die a) für alle freigegeben sind und b) nicht von Benutzern geändert werden (da Änderungen für alle anderen Benutzer global sind). Ich verwende Statik für Dinge wie Systemkonfiguration oder Objekte, die sicher geteilt werden können.

Ich denke, das Hauptproblem ist das: "Ich denke, es ist zeitaufwendig" - nicht raten, messen. Es gibt viele Profiler für .net. Wenn Sie Leistungsprobleme haben, messen Sie, ob es wirklich ein Problem ist, und handeln Sie dann.

Verwandte Themen