Quelle est la différence entre DbContext et ObjectContext
De MSDN
:
Représente une combinaison de l'Unité De Travail d'un Référentiel et de modèles et vous permet d'interroger une base de données et de regrouper les changements qui vont être écrites dans le magasin comme une unité.
DbContext
est conceptuellement similaire àObjectContext
.
J'ai bien DbContext
seulement gérer la connexion à la DB et le nombre de threads de travail à l'encontre de la DB.
Maintenant, je comprends qu'il contient le mécanisme de suivi? Je pensais que c'était dans le ObjectContext
.
Alors, quelle est (en anglais), la différence entre eux?
Vous devez vous connecter pour publier un commentaire.
DbContext est une version légère de la classe ObjectContext, qui est faite à peu près droite au-dessus de ObjectContext (il y a même un moyen d'obtenir de l'ObjectContext juste de la DbContext). Il est aussi beaucoup plus facile à utiliser, de l'OMI, et rend les opérations CRUD un sinch.
Pour une meilleure information, qui de mieux à regarder que Julie Lerman pour plus d'informations sur les différences, comme l'a mis en EF 4.1.
le DbContext est un API plus petite de l'exposer le plus couramment utilisé
caractéristiques de l'ObjectContext. Dans certains cas, ces caractéristiques se reflètent dans le DbContext
L'API. Dans d'autres cas, l'équipe d'Entity Framework a simplifié un codage plus complexe
en nous fournissant des méthodes comme de Trouver ou de propriétés comme DbSet.Locaux. Mais il y a
un grand API rôdant sous que vous pouvez encore avoir besoin. Par exemple, vous pourriez
souhaitez travailler directement avec les MetadataWorkspace à écrire du code générique contre les classes
parce que l'API peut lire le modèle de manière plus efficace que de réflexion. En outre, l'
MetadataWorkspace est en mesure de fournir plus d'informations sur les métadonnées que vous
pouvez découvrir dans la réflexion, par exemple, pour les principales propriétés. Ou vous voulez
profitez d'une base de données spécifique à la fonction qui est exposée à travers Entity SQL,
vous ne pouvez pas accéder à partir de LINQ to entities.
Ou vous avez déjà une application
écrite à l'aide de la ObjectContext et que vous voulez tirer parti de la DbContext dans les futures mises à jour
sans remplacer tout le code de ObjectContext.(De référence de la Programmation DbContext)
Contexte De L'Objet:
1.Il compiler le support de la requête
2.C'support de l'auto de suivi des entités
3.C'disponibles pour l'entité cadre 4.0 et au-dessous de la version
4.Il n'est pas thread-safe.
5.Il est préférable de DB premier et le modèle de la première approche.
Contexte De Base De Données:
1.Il ne prend pas en charge les requêtes compilées
2.Il support pas l'autonomie le suivi des entités
3.C'disponibles pour l'entité cadre de travail 4.1 et au-dessus de la version
4.Il est thread-safe pour la statique et de la part des membres(public).
5.Il est préférable de DB première et le premier modèle de l'approche et de l'approche du premier code.