Je viens de télécharger l'entité framework 6 et j'ai créé un tout nouveau projet pour le tester. Nous utilisons actuellement EF 5.
Après avoir ajouté toutes mes tables et procédures stockées, j'ai essayé de construire le projet mais j'obtiens des erreurs:
La valeur de type "System.Data.Objects.ObjectParameter" ne peut pas être convertie en "System.Data.Entity.Core.Objects.ObjectParameter".
La valeur de type 'System.Data.Entity.Core.Objects.ObjectResult (Of DataLibrary.MyStoredProc_Result)' ne peut pas être convertie en 'System.Data.Objects.ObjectResult (Of DataLibrary.MyStoredProc_Result)'.
Je ne peux pas comprendre pourquoi cela ne fonctionnera pas hors de la boîte
EF 5 avait donc de tels problèmes.
J'utilise VS 2012. .Net 4.5 Vb.net (également essayé avec un projet C # ... même problème)
Des idées?
MODIFIER :
La réponse a été d'installer EF6 Tools pour VS 2012. Je ne savais pas que je devais le faire car je pensais que cela avait été installé lorsque j'ai ajouté le package Entity Framework.
Je suppose que vous utilisez des outils EF de VS2012 qui sont toujours liés à la distribution EF d'origine (partie du framework .NET). EF6 utilise une distribution hors bande et ne fonctionne pas avec les outils précédents - c'est la raison pour laquelle ces types ont des espaces de noms un peu différents et ne peuvent pas être convertis de l'un à l'autre.
La solution doit être de télécharger et d'installer outils EF6 pour VS2012 ou d'utiliser VS2013 où les outils doivent être inclus.
Vous pouvez surmonter ce scénario en remplaçant:
using System.Data.Objects;
Avec:
using System.Data.Entity.Core.Objects;
Vous devrez peut-être mettre à jour les instructions using
dans vos modèles T4, comme votre fichier Context.tt, afin que les fichiers générés automatiquement continuent de fonctionner lors de la régénération.
Avant
Après
J'ai utilisé ce que "Pauly Glott", qui a fonctionné pour moi. Pour des informations un peu plus détaillées, consultez mon article sur les forums Microsoft et la réponse.