52 votes

Qu'est-ce que l'API fluide Entity Framework?

Je continue d'entendre parler de la Fluent API de Entity Framework mais j'ai du mal à trouver une bonne référence à ce sujet. Qu'est-ce que c'est?

Nous utilisons le Entity Framework et l'outil de modélisation fourni. Est-ce tout ce qu'il y a? Ou est-ce quelque chose de différent?

De même, si ce n'est pas une question trop large, qu'est-ce que POCO? Je sais que cela signifie Plain Old CLR Objects, mais qu'est-ce que cela signifie pour moi en tant que personne utilisant déjà EF avec l'outil de modélisation? Si cette question est trop vague, veuillez l'ignorer. Je suis en train d'apprendre ici et toute information que vous êtes prêt à fournir est utile.

56voto

Jason Evans Points 15732

Entity Framework 4.1 introduit l'approche code first pour écrire des modèles de base de données. C'est également appelé POCO (Plain Old CLR Objects). L'idée est que vous pouvez construire votre base de données à partir de ces classes, plutôt que de construire la base de données d'abord et de créer un modèle à partir de cela.

Il existe des tonnes de bons articles de blog et de documentation MSDN à ce sujet. Un bon point de départ serait

http://blogs.msdn.com/b/adonet/archive/2010/12/14/ef-feature-ctp5-fluent-api-samples.aspx

http://weblogs.asp.net/scottgu/archive/2010/12/08/announcing-entity-framework-code-first-ctp5-release.aspx

http://weblogs.asp.net/manavi/archive/2011/03/27/associations-in-ef-4-1-code-first-part-1-introduction-and-basic-concepts.aspx

En ce qui concerne la fluent API, il s'agit essentiellement d'utiliser les classes EF pour construire votre base de données par exemple :

modelBuilder.Entity().HasKey(c => c.CategoryCode);

Vous déclarez manuellement que la table Category a une clé principale nommée `CategoryCode'. Vous pouvez également déclarer la PK comme ceci :

public class Category
{
    [Key]    
    public int CategoryCode { get; set;}
}

L'attribut [Key] provient de Data Annotations

5voto

Xaisoft Points 12363

POCO signifie Plain Old CLR Object.

Article sur Fluent API.

1voto

Vous pouvez également consulter la section Code First Fluent API sur MSDN ici http://msdn.microsoft.com/en-us/library/hh295844

0voto

Eric Andres Points 2434

En réponse à votre question sur POCO : dans l'application sur laquelle je travaille actuellement, j'utilise des POCO pour transmettre des données à mon interface Silverlight (EF ne suffisait pas). En gros, j'utilise les entités créées par le modeleur EF, je les transforme en une version compatible avec la sérialisation, puis je les envoie et les reçois par le biais du réseau. Les POCO servent à fournir une couche d'abstraction lorsque nécessaire. Je le vois comme une adaptation du modèle DAO à la sérialisation, au lieu de l'utiliser pour l'accès à la base de données comme le fait normalement le modèle DAO.

0voto

tdykstra Points 2585

Consultez le paragraphe sur les classes POCO dans http://www.asp.net/entity-framework/tutorials/creating-an-entity-framework-data-model-for-an-asp-net-mvc-application

Essentiellement, dans le contexte de EF, les classes POCO sont des classes entité qui n'héritent pas de la classe EntityObject d'Entity Framework (ce qui est ce que vous obtenez par défaut dans Database First ou Model First). Comme l'un des autres réponses le mentionne, cela facilite la sérialisation des objets, mais aussi certaines méthodologies de développement et de tests automatisés préfèrent travailler avec des objets n'ayant aucune référence à Entity Framework.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X