Migliore risposta
POCO è un semplice oggetto CLR (Common Language Runtime) . È fondamentalmente unentità in un dominio. Nel framework delle entità di solito è utile nel primo modello del codice non nel primo modello del database. Questa classe non eredita la funzionalità di alcun framework o tecnologia specifica. È una semplice classe pubblica e contiene solo proprietà e metodi. Questi metodi non implementano una logica persistente come il salvataggio e il recupero dei dati dal database. Queste classi sono anche chiamate classi Persistence Ignorant. Fondamentalmente, funge da livello per comunicare con le righe e le colonne della tabella del database.
Esempio di Poco Class
public class Group
{
public int ID {get; impostato; }
public string GroupName {get; impostato; }
membro pubblico ApplicationUser {get; impostato; }
public string GroupDescription {get; impostato; }
public ICollection
}
POCO si comporta meglio di DTO [Design]
A DTO ” Lunico scopo è trasferire lo stato e non dovrebbe avere alcun comportamento. Vedere la spiegazione di un DTO di Martin Fowler per un esempio delluso di questo modello.
Considerando che, A POCO segue le regole di OOP. Dovrebbe (ma non deve) avere lo stato e comportamento. POCO deriva da POJO, coniato da Martin Fowler [ anecdote here ]. Ha usato il termine POJO come un modo per rendere più sexy rifiutare le implementazioni EJB pesanti del framework. POCO dovrebbe essere usato nello stesso contesto in.Net. Non lasciare che i framework dettino il tuo object “s design.
Per saperne di più su .NET e Entity Framework, controlla il mio canale YouTube
Risposta
I POCO (semplici vecchi oggetti CLR) sono semplicemente entità del tuo dominio. Normalmente quando usiamo il framework delle entità le entità vengono generate automaticamente per te. Questo è fantastico ma sfortunatamente questi le entità sono intervallate da funzionalità di accesso al database che sono chiaramente contrarie al SOC (Separation of concern). I POCO sono entità semplici senza alcuna funzionalità di accesso ai dati ma forniscono comunque le funzionalità a tutti EntityObject funzionale ad esempio
- Lazy loading
- Cambia tracciamento
Ecco un buon inizio per questo
Puoi anche generare POCOs così facilmente dal tuo progetto Entity Framework esistente utilizzando i generatori di codice.