Asp.net mvc 3 无法将文件附加为数据库/基础提供程序在打开时失败

Asp.net mvc 3 无法将文件附加为数据库/基础提供程序在打开时失败,asp.net-mvc-3,entity-framework,visual-studio-debugging,localdb,Asp.net Mvc 3,Entity Framework,Visual Studio Debugging,Localdb,我有一个使用实体框架的MVC3应用程序。我大约有一年没有使用这个应用程序了。最近,我在一台新电脑上打开它,尝试在调试模式下运行,并在调试中点击以下异常/堆栈跟踪。主要的例外情况似乎是“无法将文件作为数据库附加”和“基础提供程序在打开时失败”。我在堆栈溢出上搜索了这些错误,发现的答案似乎与这种情况不匹配。例如,“无法将文件附加为数据库”的一个答案表明,本地数据库上可能存在旧版本的数据库,但在visual studio中浏览到localdb时,本地数据库中没有任何数据库 我正在寻找有关下一步调查什么

我有一个使用实体框架的MVC3应用程序。我大约有一年没有使用这个应用程序了。最近,我在一台新电脑上打开它,尝试在调试模式下运行,并在调试中点击以下异常/堆栈跟踪。主要的例外情况似乎是“无法将文件作为数据库附加”和“基础提供程序在打开时失败”。我在堆栈溢出上搜索了这些错误,发现的答案似乎与这种情况不匹配。例如,“无法将文件附加为数据库”的一个答案表明,本地数据库上可能存在旧版本的数据库,但在visual studio中浏览到localdb时,本地数据库中没有任何数据库

我正在寻找有关下一步调查什么以解决此问题的指导。有什么建议吗

失败的实际代码为:

            var currentHunt = (from ph in this.repo.GetAllPuzzleHunts()
                           orderby ph.PuzzleHuntId descending
                           select ph).FirstOrDefault();
这是web应用程序首次尝试通过实体框架从数据库获取数据

FWIW这台机器有实体框架6.0,我使用的是Visual Studio 2012

异常/堆栈跟踪如下:

System.Data.DataException was unhandled by user code
  HResult=-2146233087
  Message=An exception occurred while initializing the database. See the InnerException for details.
  Source=EntityFramework
  StackTrace:
       at System.Data.Entity.Internal.InternalContext.PerformInitializationAction(Action action)
       at System.Data.Entity.Internal.InternalContext.PerformDatabaseInitialization()
       at System.Data.Entity.Internal.LazyInternalContext.<InitializeDatabase>b__4(InternalContext c)
       at System.Data.Entity.Internal.RetryAction`1.PerformAction(TInput input)
       at System.Data.Entity.Internal.LazyInternalContext.InitializeDatabaseAction(Action`1 action)
       at System.Data.Entity.Internal.LazyInternalContext.InitializeDatabase()
       at System.Data.Entity.Internal.InternalContext.Initialize()
       at System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType)
       at System.Data.Entity.Internal.Linq.InternalSet`1.Initialize()
       at System.Data.Entity.Internal.Linq.InternalSet`1.GetEnumerator()
       at System.Data.Entity.Infrastructure.DbQuery`1.System.Collections.Generic.IEnumerable<TResult>.GetEnumerator()
       at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
       at System.Linq.OrderedEnumerable`1.<GetEnumerator>d__0.MoveNext()
       at System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable`1 source)
       at GutolMvcApp.Controllers.HomeController.Index() in c:\Users\jordanat\Documents\Visual Studio 2012\Projects\Gutol\Gutol\GutolMvcApp\Controllers\HomeController.cs:line 25
       at lambda_method(Closure , ControllerBase , Object[] )
       at System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters)
       at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters)
       at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters)
       at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass42.<BeginInvokeSynchronousActionMethod>b__41()
       at System.Web.Mvc.Async.AsyncResultWrapper.<>c__DisplayClass8`1.<BeginSynchronous>b__7(IAsyncResult _)
       at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`1.End()
       at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult)
       at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass37.<>c__DisplayClass39.<BeginInvokeActionMethodWithFilters>b__33()
       at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass4f.<InvokeActionMethodFilterAsynchronously>b__49()
  InnerException: System.Data.Entity.Core.EntityException
       HResult=-2146233087
       Message=The underlying provider failed on Open.
       Source=EntityFramework
       StackTrace:
            at System.Data.Entity.Core.EntityClient.EntityConnection.Open()
            at System.Data.Entity.Core.Objects.ObjectContext.EnsureConnection()
            at System.Data.Entity.Core.Objects.ObjectContext.ExecuteInTransaction[T](Func`1 func, IDbExecutionStrategy executionStrategy, Boolean startLocalTransaction, Boolean releaseConnectionOnSuccess)
            at System.Data.Entity.Core.Objects.ObjectQuery`1.<>c__DisplayClassb.<GetResults>b__9()
            at System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute[TResult](Func`1 operation)
            at System.Data.Entity.Core.Objects.ObjectQuery`1.GetResults(Nullable`1 forMergeOption)
            at System.Data.Entity.Core.Objects.ObjectQuery`1.<System.Collections.Generic.IEnumerable<T>.GetEnumerator>b__0()
            at System.Lazy`1.CreateValue()
            at System.Lazy`1.LazyInitValue()
            at System.Lazy`1.get_Value()
            at System.Data.Entity.Internal.LazyEnumerator`1.MoveNext()
            at System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable`1 source)
            at System.Data.Entity.Core.Objects.ELinq.ObjectQueryProvider.<GetElementFunction>b__1[TResult](IEnumerable`1 sequence)
            at System.Data.Entity.Core.Objects.ELinq.ObjectQueryProvider.ExecuteSingle[TResult](IEnumerable`1 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)
            at System.Data.Entity.Internal.EdmMetadataRepository.QueryForModelHash(Func`2 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.CreateDatabaseIfNotExists`1.InitializeDatabase(TContext context)
            at System.Data.Entity.Internal.InternalContext.<>c__DisplayClasse`1.<CreateInitializationAction>b__d()
            at System.Data.Entity.Internal.InternalContext.PerformInitializationAction(Action action)
       InnerException: System.Data.SqlClient.SqlException
            HResult=-2146232060
            Message=Cannot attach the file 'C:\Users\...\Visual Studio 2012\Projects\Gutol\Gutol\GutolMvcApp\App_Data\PuzzleCollateral.mdf' as database 'PuzzleCollateral'.
用户代码未处理System.Data.DataException HResult=-2146233087 Message=初始化数据库时发生异常。有关详细信息,请参见InnerException。 Source=EntityFramework 堆栈跟踪: 位于System.Data.Entity.Internal.InternalContext.PerforminizationAction(操作操作) 位于System.Data.Entity.Internal.InternalContext.PerformDatabaseInitialization()处 位于System.Data.Entity.Internal.LazyInternalContext.b_uu4(InternalContext c) 在System.Data.Entity.Internal.RetryAction`1.PerformAction(输入) 位于System.Data.Entity.Internal.LazyInternalContext.InitializeDatabaseAction(Action`1 Action) 在System.Data.Entity.Internal.LazyInternalContext.InitializeDatabase()中 位于System.Data.Entity.Internal.InternalContext.Initialize()处 位于System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(类型entityType) 位于System.Data.Entity.Internal.Linq.InternalSet`1.Initialize() 位于System.Data.Entity.Internal.Linq.InternalSet`1.GetEnumerator()处 位于System.Data.Entity.Infrastructure.DbQuery`1.System.Collections.Generic.IEnumerable.GetEnumerator() 在System.Linq.Buffer`1..ctor处(IEnumerable`1源) 在System.Linq.OrderedEnumerable`1.d_u0.MoveNext()中 位于System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable`1源) 在c:\Users\jordanat\Documents\Visual Studio 2012\Projects\Gutol\Gutol\GutolMvcApp\Controllers\HomeController.Index()中的GutolMvcApp.Controllers.HomeController.Index()处:第25行 在lambda_方法中(闭包、控制器基、对象[]) 位于System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller,Object[]参数) 位于System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext ControllerContext,IDictionary`2参数) 位于System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext ControllerContext,ActionDescriptor ActionDescriptor,IDictionary`2参数) 在System.Web.Mvc.Async.AsyncControllerActionInvoker.c__DisplayClass42.b__41()中 在System.Web.Mvc.Async.AsyncResultRapper.c_uuu显示类8`1.b_uuu7(IAsyncResult) 位于System.Web.Mvc.Async.AsyncResultRapper.WrappedAsyncResult`1.End() 位于System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult) 在System.Web.Mvc.Async.AsyncControllerActionInvoker.c_uuDisplayClass37.c_uuDisplayClass39.b_u33()中 在System.Web.Mvc.Async.AsyncControllerActionInvoker.c__DisplayClass4f.b__49()中 InnerException:System.Data.Entity.Core.EntityException HResult=-2146233087 Message=基础提供程序在打开时失败。 Source=EntityFramework 堆栈跟踪: 在System.Data.Entity.Core.EntityClient.EntityConnection.Open()中 位于System.Data.Entity.Core.Objects.ObjectContext.EnsureReconnection()处 在System.Data.Entity.Core.Objects.ObjectContext.ExecuteInTransaction[T](Func`1 Func,IDBEcutionStrategy executionStrategy,Boolean startLocalTransaction,Boolean releaseConnectionOnSuccess) 在System.Data.Entity.Core.Objects.ObjectQuery`1.c__DisplayClassb.b__9() 在System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute[TResult](Func`1操作)中 位于System.Data.Entity.Core.Objects.ObjectQuery`1.GetResults(可为null`1 forMergeOption) 位于System.Data.Entity.Core.Objects.ObjectQuery`1.b_u 0() 在System.Lazy`1.CreateValue()处 在System.Lazy`1.LazyInitValue()处 在System.Lazy`1.get_Value() 位于System.Data.Entity.Internal.LazyEnumerator`1.MoveNext() 位于System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable`1源) 位于System.Data.Entity.Core.Objects.Elink.ObjectQueryProvider.b__1[TResult](IEnumerable`1序列) 位于System.Data.Entity.Core.Objects.Elink.ObjectQueryProvider.ExecuteSingle[TResult](IEnumerable`1查询,表达式queryRoot) 位于System.Data.Entity.Core.Objects.Elink.ObjectQueryProvider.System.Linq.IQueryProvider.Execute[TResult](表达式) 在System.Data.Entity.Internal.Linq.DbQueryProvider.Execute[TResult](表达式)处 位于System.Linq.Queryable.FirstOrDefault[TSource](IQueryable`1源) 位于System.Data.Entity.Internal.EdmMetadataRepository.QueryForModelHash(Func`2 createContext) 位于System.Data.Entity.Internal.InternalContext.QueryForModelHash()处 位于System.Data.Entity.Internal.ModelCompatibilityChecker.CompatibleWithModel(InternalContext InternalContext、ModelHashCalculator ModelHashCalculator、Boolean ThrowFNMetadata) 位于System.Data.Entity.Internal.InternalContext.CompatibleWithModel(布尔ThrowifNMetadata) 位于System.Data.Entity.Database.Compatible