2010-04-24 5 views
2

J'utilise EF pour le DataLayer principal sur mes sites Web asp.net. Je crée une bibliothèque de classes et y ajoute le modèle, le référence et l'utilise depuis le site Web ASP.NET. Mais cette fois, j'ai généré le modèle à partir de la base de données, mais il semble ne pas implémenter IDisposable, et les méthodes que j'avais l'habitude de voir ne sont pas là. DeleteObject, SaveChanges, etc. Il n'y a que deux tables dans le DB et le Model a été généré avec seulement les TableSet et deux méthodes AddToTableSet ... Quelqu'un a-t-il rencontré un tel problème? alt text http://techlipse.net/EF-problem.jpgEntityFramework donne une erreur IDisposable

Répondre

4

Avez-vous étendu le ObjectContext généré et peut-être le renommer dans l'EDMX? Vous pourriez regarder votre partie de la classe partielle ici sans la partie générée.

Que dit le panneau Propriétés pour votre EDMX pour "Entity Container Name"?

Lorsque vous faites un clic droit sur Entités et que vous passez à la définition, arrivez-vous à la bonne classe générée?

Enfin, mais probablement le plus probable, avez-vous supprimé la référence à System.Data.Entity du projet ou ne pas l'avoir référencée dans votre projet web?

Est-ce que vous projet web même un projet d'application Web ???

+0

Merci, j'ai eu exactement le même problème, et votre solution en gras l'a fixé pour moi! – Andrew

3

J'ai mon code Entity Framework dans son propre projet et le référençait à partir d'un projet distinct. NuGet définit EntityFramework uniquement sur le projet EF, ce qui correspond à la configuration automatique de la référence à la dernière version. Pour corriger cette erreur: Outils ->Package Library Manager ->Gérer des packages NuGet pour la solution Sélectionnez packages installés et trouver Entity Framework Cliquez sur le bouton Gérer et vérifier tout le projet qui accéder au modèle de données EF.