Meilleure réponse
POCO est de vieux objets CLR (Common Language Runtime) . Cest fondamentalement une entité dans un domaine. Dans le cadre dentité, il est généralement utile dans le premier modèle de code et non dans le premier modèle de base de données. Cette classe nhérite pas des fonctionnalités dun framework ou dune technologie spécifique. Cest une classe publique simple et ne contient que des propriétés et des méthodes. Ces méthodes nimplémentent pas de logique persistante telle que lenregistrement et la récupération des données de la base de données. Ces classes sont également appelées classes ignorant la persistance. Fondamentalement, il agit comme une couche pour communiquer avec les lignes et les colonnes de la table de base de données.
Exemple de classe Poco
Groupe de classe publique
{
ID public int {get; ensemble; }
chaîne publique GroupName {get; ensemble; }
Membre public ApplicationUser {get; ensemble; }
chaîne publique GroupDescription {get; ensemble; }
public ICollection
}
POCO se comporte mieux que DTO [Design]
A DTO » Le seul but de s est de transférer létat, et ne devrait avoir aucun comportement. Voir Martin Fowler « s explication dun DTO pour un exemple de lutilisation de ce modèle.
Alors quun POCO suit les règles de la POO. Il devrait (mais nest pas obligé) avoir létat et comportement. POCO vient de POJO, inventé par Martin Fowler [ anecdote ici ]. Il a utilisé le terme POJO pour rendre plus sexy le rejet des implémentations EJB lourdes du framework. POCO doit être utilisé dans le même contexte dans.Net. Ne laissez pas les frameworks vous dicter la conception de lobjet.
Pour en savoir plus sur .NET et le framework Entity, consultez ma chaîne youtube
Réponse
Les POCO (anciens objets CLR simples) sont simplement des entités de votre domaine. Normalement, lorsque nous utilisons le framework dentités, les entités sont générées automatiquement pour vous. Cest génial mais malheureusement ces Les entités sont entrecoupées de fonctionnalités daccès à la base de données qui vont clairement à lencontre du SOC (Separation of Concern). Les POCO sont des entités simples sans aucune fonctionnalité daccès aux données mais donnent toujours toutes les fonctionnalités EntityObject fonctionnel comme
- Chargement différé
- Suivi des modifications
Voici un bon début pour cela
Vous pouvez également générer des POCO si facilement à partir de votre projet de cadre dentité existant en utilisant des générateurs de code.