web-dev-qa-db-fra.com

DbContext est-il identique à DataContext?

Je suis en train de suivre un tutoriel de Scott G qui fait référence à une classe nommée DbContext. Je ne le trouve sur aucun espace de noms sur le framework 4 et il me semble qu'il a été renommé de CT4 DbContext en .net4 System.Data.Linq.DataContext. Mon hypothèse est-elle correcte?

57
Padu Merloti

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

En quoi est-ce différent de ObjectContext? Bien sémantiquement, ils sont exactement les mêmes, mais ils ont réduit beaucoup de bruit supplémentaire que ObjectContext avait. Comme exposer un ensemble nécessitait 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; }

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

Cela signifie que si vous utilisez ObjectContext en ce moment, avec un peu de code, vous pouvez facilement passer à DbContext.

88
zeeshanhirani

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).

8