/ / Entity Framework CF (DbContext) e query compilate - c #, .net, entity-framework, ado.net

Entity Framework CF (DbContext) e query compilate - c #, .net, entity-framework, ado.net

A quanto ho capito, le query compilate non sono comedi ora supporto per Entity Framework Code First (4.2). Il risultato di prestazioni per non utilizzare query compilate è piuttosto alto, quindi sto cercando di trovare una soluzione.

Ho fatto il seguente lavoro per ora: Creare una nuova classe che eredita da ObjectContext: installarla accanto a DbContext utilizzando la stessa EntityConnection. Utilizzare CreateObjectSet <> per creare ObjectSet per le entità e utilizzare tale conext per le query compilate. Funziona (per le query di piccole dimensioni, le prestazioni aumentano di 10 volte) ma è piuttosto ingombrante a causa della necessità di creare proprietà ObjectSet per ogni nuova entità (! DRY).

Qualcuno sa di un modo più elegante per risolvere questo?

risposte:

2 per risposta № 1

Sembra che tu stia usando DbContext con EDMX. Se le prestazioni delle query sono la tua preoccupazione principale e devi utilizzare query compilate, non utilizzare l'API di DbContext e scrivere l'intera applicazione con l'API di ObjectContext. L'utilizzo di ObjectContext per metà dell'applicazione e DbContext per la seconda metà dell'applicazione deve generare codice duplicazione.

L'API di DbContext ha alcune limitazioni e lo faràprobabilmente non supporta query compilate selettive in un prossimo futuro. La prossima versione di EF fornirà invece la possibilità di auto-compilare e riutilizzare tutte le query LINQ.