1

我已经使用这个步骤创建了一个项目

创建模型;从模型和脚手架视图创建控制器;

我试图访问,它工作正常,但我在模型重建中做了一些更改并尝试再运行一次,现在我收到了这个错误:

{“支持 'CodingContext' 上下文的模型在创建数据库后发生了变化。考虑使用 Code First 迁移来更新数据库 ( http://go.microsoft.com/fwlink/?LinkId=238269 )。”}

这个错误带来了一个空的内部异常

这是堆栈:

在 System.Data.Entity.CreateDatabaseIfNotExists 1.InitializeDatabase(TContext context) at System.Data.Entity.Internal.InternalContext.<>c__DisplayClass8.<PerformDatabaseInitialization>b__6() 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.RetryAction1.PerformAction(TInput 输入) 在 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.InternalSet1.Initialize() 在 System.Data.Entity.Internal.Linq.InternalSet 1.GetEnumerator() at System.Data.Entity.Infrastructure.DbQuery1.System。 Collections.Generic.IEnumerable.GetEnumerator() at System.Collections.Generic.List 1..ctor(IEnumerable1 collection) at System.Linq.Enumerable.ToList[TSource](IEnumerable 1 source) at Coding.Controllers.CorController.Index() in c:\Users\Guilherme\Documents\Visual Studio 2012\Projects\Coding\Coding\Controllers\CorController.cs:line 19 at lambda_method(Closure , ControllerBase , Object[] ) at System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters) at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary2 parameters) at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor,IDictionary 2 parameters) at System.Web.Mvc.Async.AsyncControllerActionInvoker.InvokeSynchronousActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary2 参数)在 System.Web.Mvc.Async.AsyncControllerActionInvoker.<> c_DisplayClass42.b _41() 在 System.Web.Mvc.Async.AsyncResultWrapper.<> c_DisplayClass81.<BeginSynchronous>b__7(IAsyncResult _) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult1.End() at System.Web.Mvc.Async.AsyncResultWrapper.End[TResult](IAsyncResult asyncResult, Object tag) at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult) 在 System.Web.Mvc。 Async.AsyncControllerActionInvoker.<>c _DisplayClass37.<>c_ DisplayClass39.b _33() at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c_ DisplayClass4f.b _49()

我认为问题在于使用这个新模型重新定义数据库,但我找不到任何解决这个问题的命令。

提前致谢!

4

1 回答 1

0

如果有人遇到同样的问题,我在朋友的帮助下得到了这个答案,您必须按照以下步骤更新您的数据库:

打开包管理器控制台:工具 -> 库包管理器 -> 包管理器控制台

安装实体框架:Install-Package EntityFramework

运行:启用迁移

此时我遇到了问题,但 Visual Studio 告诉我答案,只是多个上下文的问题

运行:添加迁移

然后:更新数据库

完成了,模型中的每一次更改都需要运行这些命令!

于 2013-05-05T15:20:43.470 回答