Système.Les données.DataException erreur s'est produite dans EntityFramework.dll
J'ai suivi ce tutoriel Mise en route avec Entity Framework 6 Code de la Première utilisation de MVC 5.
Quand je suis arrivé à la partie où j'ai besoin d'exécuter le programme et cliquez sur l'Étudiant, de sorte que le programme serait de créer une base de données, j'obtiens l'erreur suivante.
Système.Les données.DataException a été gérée par le code de l'utilisateur
HResult=-2146233087
Message=Une exception s'est produite lors de l'initialisation de la base de données. Voir la InnerException pour plus de détails.
Source=EntityFramework
StackTrace:
au Système.Les données.De l'entité.Interne.InternalContext.PerformInitializationAction(Action)
au Système.Les données.De l'entité.Interne.InternalContext.PerformDatabaseInitialization()
au Système.Les données.De l'entité.Interne.LazyInternalContext.b__4(InternalContext c)
au Système.Les données.De l'entité.Interne.RetryAction1.PerformAction(TInput input)
1 action)
at System.Data.Entity.Internal.LazyInternalContext.InitializeDatabaseAction(Action
au Système.Les données.De l'entité.Interne.LazyInternalContext.InitializeDatabase()
au Système.Les données.De l'entité.Interne.InternalContext.Initialize()
au Système.Les données.De l'entité.Interne.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType)
au Système.Les données.De l'entité.Interne.Linq.InternalSet1.Initialize()
1.GetEnumerator()
at System.Data.Entity.Internal.Linq.InternalSet
au Système.Les données.De l'entité.L'Infrastructure.DbQuery1.System.Collections.Generic.IEnumerable<TResult>.GetEnumerator()
1..ctor(IEnumerable
at System.Collections.Generic.List1 collection)
1 source)
at System.Linq.Enumerable.ToList[TSource](IEnumerable
au ContosoUniversityFollow.Les contrôleurs.StudentController.Index() dans c:\Users\Office\Documents\Visual Studio 2013\Projets\ContosoUniversityFollow\ContosoUniversityFollow\Controllers\StudentController.cs:ligne 21
au lambda_method(Fermeture , ControllerBase , Object[] )
au Système.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase contrôleur, Object[] paramètres)
au Système.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary2 parameters)
2 paramètres)
at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary
au Système.Web.Mvc.Async.AsyncControllerActionInvoker.ActionInvocation.InvokeSynchronousActionMethod()
au Système.Web.Mvc.Async.AsyncControllerActionInvoker.b__36(IAsyncResult asyncResult, ActionInvocation innerInvokeState)
au Système.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult2.CallEndDelegate(IAsyncResult asyncResult)
1.Fin (la)
at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResultBase
au Système.Web.Mvc.Async.AsyncResultWrapper.Fin[TResult](IAsyncResult asyncResult, balise Object)
au Système.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult)
au Système.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.b__3c()
au System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass45.b__3e()
InnerException: Système.Les données.De l'entité.De base.EntityException
HResult=-2146233087
Message=Le fournisseur sous-jacent échoué sur Ouvrir.
Source=EntityFramework
StackTrace:
au Système.Les données.De l'entité.De base.EntityClient.EntityConnection.Open()
au Système.Les données.De l'entité.De base.Objets.ObjectContext.EnsureConnection()
au System.Data.Entity.Core.Objects.ObjectContext.ExecuteInTransaction[T](Func1 func, IDbExecutionStrategy executionStrategy, Boolean startLocalTransaction, Boolean releaseConnectionOnSuccess)
1.<>c__DisplayClassb.b__9()
at System.Data.Entity.Core.Objects.ObjectQuery
au System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute[TResult](Func1 operation)
1.GetResults(Nullable
at System.Data.Entity.Core.Objects.ObjectQuery1 forMergeOption)
1..GetEnumerator>b__0()
at System.Data.Entity.Core.Objects.ObjectQuery
au Système.Paresseux1.CreateValue()
1.LazyInitValue()
at System.Lazy
au Système.Paresseux1.get_Value()
1.MoveNext()
at System.Data.Entity.Internal.LazyEnumerator
au Système.Linq.Énumérable.FirstOrDefault[TSource](IEnumerable1 source)
1 séquence)
at System.Data.Entity.Core.Objects.ELinq.ObjectQueryProvider.<GetElementFunction>b__1[TResult](IEnumerable
au Système.Les données.De l'entité.De base.Objets.ELinq.ObjectQueryProvider.ExecuteSingle[TResult](IEnumerable1 query, Expression queryRoot)
1 source)
at System.Data.Entity.Core.Objects.ELinq.ObjectQueryProvider.System.Linq.IQueryProvider.Execute[TResult](Expression expression)
at System.Data.Entity.Internal.Linq.DbQueryProvider.Execute[TResult](Expression expression)
at System.Linq.Queryable.FirstOrDefault[TSource](IQueryable
au Système.Les données.De l'entité.Interne.EdmMetadataRepository.QueryForModelHash(Func2 createContext)
1.InitializeDatabase(TContext contexte)
at System.Data.Entity.Internal.InternalContext.QueryForModelHash()
at System.Data.Entity.Internal.ModelCompatibilityChecker.CompatibleWithModel(InternalContext internalContext, ModelHashCalculator modelHashCalculator, Boolean throwIfNoMetadata)
at System.Data.Entity.Internal.InternalContext.CompatibleWithModel(Boolean throwIfNoMetadata)
at System.Data.Entity.Database.CompatibleWithModel(Boolean throwIfNoMetadata)
at System.Data.Entity.DropCreateDatabaseIfModelChanges
au Système.Les données.De l'entité.Interne.InternalContext.<>c__DisplayClasse1.<CreateInitializationAction>b__d()
1 réessayer, DbConnectionOptions userOptions, DbConnectionInternal& connexion)
at System.Data.Entity.Internal.InternalContext.PerformInitializationAction(Action action)
InnerException: System.Data.SqlClient.SqlException
HResult=-2146232060
Message=Cannot open database "ContosoUniversity1" requested by the login. The login failed.
Login failed for user 'Office-PC\Office'.
Source=.Net SqlClient Data Provider
ErrorCode=-2146232060
Class=11
LineNumber=65536
Number=4060
Procedure=""
Server=(LocalDb)\v11.0
State=1
StackTrace:
at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection)
at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource
au Système.Les données.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
1 réessayer, DbConnectionOptions userOptions)
at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource
au Système.Les données.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource1 retry, DbConnectionOptions userOptions)
1 réessayer)
at System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource
au Système.Les données.SqlClient.SqlConnection.TryOpen(TaskCompletionSource1 retry)
1 opération)
at System.Data.SqlClient.SqlConnection.Open()
at System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.<>c__DisplayClass1.<Execute>b__0()
at System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute[TResult](Func
au Système.Les données.De l'entité.SqlServer.DefaultSqlExecutionStrategy.Execute(Action de l'opération)
au Système.Les données.De l'entité.De base.EntityClient.EntityConnection.Open()
InnerException:
J'ai un moment difficile essayer de résoudre le problème. Je suis de tout et même de le refaire juste pour s'assurer que je l'ai eu droit. Je ne pense pas que je m'ennuie de toutes les étapes. Mais il ya quelque chose de mal. Si je exécuter l'ensemble de l'échantillon de code, tout fonctionne bien.
Toute aide est appréciée.
Merci,
Pheap
EDIT:
C'était vraiment frustrant pour une simple chose que conduire à une erreur de ce genre.
@mmeasor, j'ai juste vu cette erreur. Il ne peut pas se connecter à la base de données. De sorte que me diriger pour vérifier la connexion.
Ce qui se passe est que au début, j'ai utilisé cette chaîne de connexion:
Donc, EntityFramework créé un fichier de base de données ContosoUniversity1.mdf ici C:\Users\Office\ContosoUniversity1.mdf. Mais je veux pour en créer un autre et l'utiliser à la place et cette fois, je veux qu'il soit dans le programme App_Data\ dossier à la place.
J'ai donc modifié le web.fichier de configuration:
J'ai pensé que si je fais ça, EF créer une nouvelle base de données pour moi dans l' \App_Data\ dossier et le lier à la place de l'ancien dans C:\Users\Office.
J'étais tellement mal! c'est alors que je commençais à l'erreur affichée ci-dessus. Et je ne peux pas trouver ce qui cause le problème.
Avec le deuxième web.config, j'ai essayé de copier le fichier de base de données dans le dossier App_Data, mais cela ne fonctionne toujours pas.
Maintenant, j'utilise la première chaîne de connexion et il fonctionne très bien.
Alors maintenant, la question est: Comment faire le programme de liens au fichier de base de données dans le dossier App_Data\ dossier à la place?
Merci,
Pheap
OriginalL'auteur Pheap | 2014-03-21
Vous devez vous connecter pour publier un commentaire.
J'ai eu le même problème en essayant de changer l'emplacement de Conosto Université tutoriel de base de données de l'Utilisateur à partir du dossier de dossier App_Data. John Locke incrustée de moi l'idée qu'il peut avoir quelque chose à voir avec le fait d'avoir changer le nom de la base de données.
Changement de nom légèrement de la base de données nommée dans le web.fichier de configuration (Cela fonctionne de façon irrégulière, mais ne fonctionne toujours de façon incohérente. Si j'ai eu à tester ce nouveau...et je suis sûr que je vais à un certain point...je voudrais rester à l'écart de la réutilisation des noms - c'est à dire ne pas basculer d'avant en arrière entre les deux nom de préférences (par exemple, database1 et base de données2 retour à database1 - je complètement l'usage de nouveaux noms par exemple databse7...database8...database9 - obtenir le nom loin de déjà utilisé des noms)
J'ai aussi eu de la chance, une fois qu'une base de données a été créée avec le nom je ne voulais pas changer le nom de la base de ce que je voulais être et correspondant à ce nom dans le web.config (c'est à dire que j'ai été capable de créer un "database3.mdf" fichier correctement, puis changé dans les OS de ce que je voulais - "database1.mdf" et égalé le web.fichier de configuration pour database1 et il connecté sur le premier try)
OriginalL'auteur 3v3rhart
J'ai eu ce problème pendant des jours ("Une exception de type 'System.Les données.DataException' s'est produite dans EntityFramework.dll mais n'a pas été traitée dans le code utilisateur") et j'ai tout essayé depuis la modification de la chaîne de connexion pour beaucoup de différentes méthodes que j'ai vu sur Internet, questions et réponses,
Ma solution?...
Créé un nouveau proyect avec un autre nom, et il m'a sauvé.
OriginalL'auteur Steve Mitre
Ici EmployeeDetail est un nom de table et de l'Employé est un nom de modèle. Et
ID,la Branche, le Salaire et les UID sont les champs de la table:
OriginalL'auteur Satyendra negi