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 erreur s'est produite dans EntityFramework.dll

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)
at System.Data.Entity.Internal.LazyInternalContext.InitializeDatabaseAction(Action
1 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()
at System.Data.Entity.Internal.Linq.InternalSet
1.GetEnumerator()
au Système.Les données.De l'entité.L'Infrastructure.DbQuery1.System.Collections.Generic.IEnumerable<TResult>.GetEnumerator()
at System.Collections.Generic.List
1..ctor(IEnumerable1 collection)
at System.Linq.Enumerable.ToList[TSource](IEnumerable
1 source)
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)
at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary
2 paramètres)
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)
at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResultBase
1.Fin (la)
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)
at System.Data.Entity.Core.Objects.ObjectQuery
1.<>c__DisplayClassb.b__9()
au System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute[TResult](Func1 operation)
at System.Data.Entity.Core.Objects.ObjectQuery
1.GetResults(Nullable1 forMergeOption)
at System.Data.Entity.Core.Objects.ObjectQuery
1..GetEnumerator>b__0()
au Système.Paresseux1.CreateValue()
at System.Lazy
1.LazyInitValue()
au Système.Paresseux1.get_Value()
at System.Data.Entity.Internal.LazyEnumerator
1.MoveNext()
au Système.Linq.Énumérable.FirstOrDefault[TSource](IEnumerable1 source)
at System.Data.Entity.Core.Objects.ELinq.ObjectQueryProvider.<GetElementFunction>b__1[TResult](IEnumerable
1 séquence)
au Système.Les données.De l'entité.De base.Objets.ELinq.ObjectQueryProvider.ExecuteSingle[TResult](IEnumerable1 query, Expression queryRoot)
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
1 source)
au Système.Les données.De l'entité.Interne.EdmMetadataRepository.QueryForModelHash(Func2 createContext)
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
1.InitializeDatabase(TContext contexte)
au Système.Les données.De l'entité.Interne.InternalContext.<>c__DisplayClasse1.<CreateInitializationAction>b__d()
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
1 réessayer, DbConnectionOptions userOptions, DbConnectionInternal& connexion)
au Système.Les données.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource
1 réessayer, DbConnectionOptions userOptions)
au Système.Les données.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource1 retry, DbConnectionOptions userOptions)
at System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource
1 réessayer)
au Système.Les données.SqlClient.SqlConnection.TryOpen(TaskCompletionSource1 retry)
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
1 opération)
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:
Système.Les données.DataException erreur s'est produite dans EntityFramework.dll

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:
Système.Les données.DataException erreur s'est produite dans EntityFramework.dll

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

avez-vous regarder à l'intérieur d'exception? il dit que l'échec de la connexion de Bureau-PC\Office. assurez-vous que l'utilisateur a accès à la base de données, et que vous avez le bon mot de passe

OriginalL'auteur Pheap | 2014-03-21