2010-11-02 24 views
8

Utilizzo il framework entità 4 e creo un datacontext per il modello in una delle classi base. Ma lo stavo analizzando e il contesto viene creato ogni volta che provo a interrogare, quindi ho pensato di renderlo statico in modo che venga creato una sola volta e riutilizzato sempre.I contesti dei dati dovrebbero essere statici?

Pensi che questo sia il modo migliore per farlo e il contesto dati/oggetto dovrebbe essere sempre reso statico? Ci sono degli svantaggi nel renderlo statico? I contesti dei dati dovrebbero essere statici o non statici? Qualsiasi idea o suggerimento è benvenuto.

+0

Ci sono * MOLTE * domande su SO relative alle durate di DataContext e ObjectContext. http://stackoverflow.com/search?q=Datacontext+lifetime –

+0

possibile duplicato di [DataContext statico LinqToSql in un'applicazione Web] (http://stackoverflow.com/questions/940912/linqtosql-static-datacontext-in-a -applicazione web) –

risposta

9

No. Non dovrebbero essere sempre statici.

È possibile eseguire in realtà molti altri problemi con un contesto di dati statici piuttosto che l'equivalente non statico (come più utenti provenienti da sessioni separate che accedono allo stesso contesto da più thread).

Non ho intenzione di andare nel spiegazione dettagliata in quanto ci sono alcuni post molto buon blog là fuori che coprono i dettagli:

Linq to SQL DataContext Lifetime Management - Rick Strahl's Web Log (può non sembrare rilevante, ma ancora è)

Making Entity Framework (v1) work, Part 1: DataContext Lifetime Management (per una possibile alternativa se non ti piace la soluzione di Rick)

5

I contesti dei dati devono essere sempre statici?

No, dovrebbero (quasi *) non essere mai statici. DataContext sono economici da creare perché sono pensati per essere usati come unità di lavoro. Quindi dovresti avere uno DataContext per "conversazione" (qualunque cosa significhi per il tuo contesto).

*: La risposta corretta è probabilmente che non dovrebbero mai essere statici, ma sono sempre scettico nei consigli di programmazione che è sempre o mai. Quindi, questo è un weenie che si muove più di ogni altra cosa.

Problemi correlati