59 votes

DbContext est-il identique à DataContext ?

Je suis un tutoriel de Scott Gu qui fait référence à une classe nommée DbContext. Je ne la trouve dans aucun espace de nom du framework 4 et il me semble qu'elle a été renommée de CT4 DbContext en .net4 System.Data.Linq.DataContext. Ma supposition est-elle correcte ?

0 votes

Avez-vous téléchargé le CTP ? Je crois qu'il utilise un espace de nom comme System.Data.Entities.CTP ou quelque chose comme ça...

0 votes

Je ne l'ai pas fait. Mais je me suis renseigné sur ObjectContext. Comme c'est pour un système de production, je ne peux pas utiliser CTP.

5 votes

NB Je sais que c'est évident mais System.Data.Linq.DataContext est de LINQ To Sql et DbContext vient d'Entity Framework

88voto

zeeshanhirani Points 1789

DbContext est une nouvelle classe qui a été ajoutée dans le récent téléchargement séparé par l'équipe EF. Elle ne fait actuellement pas partie du noyau de EF 4.0. Cependant, DbContext aller de l'avant serait la meilleure façon d'interagir avec EF.

En quoi est-il différent de ObjectContext ? Eh bien, sémantiquement, ils sont exactement les mêmes, mais ils ont réduit beaucoup de bruit supplémentaire qui ObjectContext avait. Comme l'exposition d'un ensemble exigeait plus de travail, par exemple :

public ObjectSet<Customer> Customers
{
    get { return db.CreateObjectSet<Customer>(); }
}

Avec DbContext vous pouvez faire :

public DbSet<Customer> Customers { get; set; }

En gros, sur le ObjectContext lorsque vous faites le point ( . ), tout est juste là, ce qui rend la liste assez énorme. Ce que l'équipe EF voulait exposer sur DbContext sont des entités qui ne sont spécifiques qu'à votre domaine et le reste de la capacité du cadre est rangé sous différentes propriétés. Cela rend simplement l'expérience de programmation plus facile.

Cela signifie que si vous utilisez ObjectContext dès maintenant, avec un peu de code, vous pouvez facilement passer à DbContext .

1 votes

Une idée de la date à laquelle il sera fusionné dans la branche principale du framework ?

6 votes

EF 4.1 a été publié le 11 avril. 2011. Voir blogs.msdn.com/b/adonet/archive/2011/04/11/ef-4-1-released.aspx pour les détails.

1 votes

Cela ne vous lie-t-il pas à EF pour l'ensemble de votre projet, par exemple si vous avez une couche métier ?

14voto

Dmitrij Kultasev Points 2897

C'est un peu trop tard, mais pour les googleurs. DbContext est utilisé pour EF ( EntityFramework ) et DataContext est utilisé pour L2S ( LINQ To SQL ).

0voto

Mimina Points 1126

DbContext

  • l'un des EntityFramework classes.
  • représente une session entre votre programme et une base de données.
  • permet à votre programme d'envoyer et de récupérer des données vers/depuis une base de données.

DataContext

  • une classe que vous créez dans votre programme et qui hérite de DbContext .
  • utiliser DataContext pour récupérer ou mettre à jour des données localement dans votre programme.
  • puis pousser les changements (en utilisant les méthodes de l'héritage DbContext ) à la base de données actuelle pour la mettre à jour.

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