Io uso MVC4 e l'entità framework 5 nel mio progetto e ho molte tabelle. Come regola del nostro progetto, non cancelliamo alcun record dal database, ogni record ha un campo isActive e se quel campo è falso, allora lo consideriamo cancellato. Volevo scrivere un metodo di estensione per ottenere record attivi e dopo un po 'googling ho scritto questo:È corretto utilizzare i metodi di estensione nel mio caso?
public static IQueryable<Company> GetAll(this IQueryable<Company> source)
{
return source.Where(p => p.isActive);
}
ora posso usare il mio metodo di estensione per ottenere solo i record attivi come
Context db = new Context();
db.Company.GetAll();
Ma diciamo che ho Ho più di 50 tabelle nel mio database, è un buon approccio per scrivere lo stesso metodo di estensione per ciascuna delle mie tabelle. C'è un modo migliore per scrivere un solo metodo di estensione GetAll() per tutte le nostre tabelle? In realtà non sono nemmeno sicuro se sia giusto usare i metodi di estensione per questa istanza?
Qualcuno potrebbe aiutarmi e mostrarmi nel modo giusto? Apprezzo se mi aiuti con esempi di codice.
Grazie per la rapida risposta LordCover. Uso il primo approccio al database. EF5.x DbContextGenerator è un normale generatore di classi POCO? In caso contrario, dove posso trovare un normale generatore di classi POCO? A proposito, nel tuo esempio non esiste una definizione di "fonte". – cck
Lo so, 'source' è solo l'Object Set che è la collezione di oggetti. –
Ma come si dice che ha campo attivo? Il compilatore dà un errore come "no tale campo"? Credo di dover fare un casting in classe Company, ma non cambierà nulla, quindi dovrò farlo per tutti i miei tavoli ?? – cck