使用EF6加载数据库初始化程序时出错

我一直在努力学习这个教程… http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/creating-an-entity-framework-data-model-for -an-asp-net-mvc-application但我一直收到以下错误……

system.invalidoperationexception = {“无法为应用程序配置中指定的DbContext类型’WeddingPreparations.Dal.WeddingContext’设置’WeddingPreparations.Dal.WeddingInitializer,KevinLisaWedding’类型的数据库初始化程序。有关详细信息,请参阅内部exception。”}

内在的例外是……

{“无法从程序集’EntityFramework,Version = 6.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089’加载类型’WeddingPreparations.Dal.WeddingContext’。”:“WeddingPreparations.Dal.WeddingContext”}

堆栈跟踪是……

at System.Data.Entity.Internal.InitializerConfig.TryGetInitializer(Type requiredContextType, String contextTypeName, String initializerTypeName, Boolean isDisabled, Func`1 initializerArgs, Func`3 exceptionMessage) at System.Data.Entity.Internal.InitializerConfig.c__DisplayClass6.b__1(ContextElement e) at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext() at System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable`1 source, Func`2 predicate) at System.Data.Entity.Internal.InitializerConfig.TryGetInitializerFromEntityFrameworkSection(Type contextType) at System.Data.Entity.Internal.InitializerConfig.TryGetInitializer(Type contextType) at System.Data.Entity.Infrastructure.DependencyResolution.AppConfigDependencyResolver.GetServiceFactory(Type type, String name) at System.Data.Entity.Infrastructure.DependencyResolution.AppConfigDependencyResolver.c__DisplayClass1.b__0(Tuple`2 t) at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory) at System.Data.Entity.Infrastructure.DependencyResolution.AppConfigDependencyResolver.GetService(Type type, Object key) at System.Data.Entity.Infrastructure.DependencyResolution.ResolverChain.c__DisplayClass3.b__0(IDbDependencyResolver r) at System.Linq.Enumerable.WhereSelectArrayIterator`2.MoveNext() at System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable`1 source, Func`2 predicate) at System.Data.Entity.Infrastructure.DependencyResolution.ResolverChain.GetService(Type type, Object key) at System.Data.Entity.Infrastructure.DependencyResolution.CompositeResolver`2.GetService(Type type, Object key) at System.Data.Entity.Infrastructure.DependencyResolution.DbDependencyResolverExtensions.GetService(IDbDependencyResolver resolver, Type type) at System.Data.Entity.Internal.InternalContext.PerformDatabaseInitialization() at System.Data.Entity.Internal.LazyInternalContext.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.GetEnumerator() at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection) at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source) at KevinLisaWedding.Controllers.HomeController.Index() in c:\Users\kdonde\Documents\Visual Studio 2013\Projects\KevinLisaWedding\KevinLisaWedding\Controllers\HomeController.cs:line 14 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.ActionInvocation.InvokeSynchronousActionMethod() at System.Web.Mvc.Async.AsyncControllerActionInvoker.b__36(IAsyncResult asyncResult, ActionInvocation innerInvokeState) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`2.CallEndDelegate(IAsyncResult asyncResult) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResultBase`1.End() at System.Web.Mvc.Async.AsyncResultWrapper.End[TResult](IAsyncResult asyncResult, Object tag) at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult) at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.b__3c() at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.c__DisplayClass45.b__3e() 

我也搜索了高低,为什么我没有运气得到这个错误,我已经下载完成的项目并将其与我的比较没有任何运气。

我目前的代码如下。

在WeddingPreparations项目中……

 namespace WeddingPreparations.Dal { public class WeddingContext : DbContext { public WeddingContext() : base("WeddingContext") { } // Any entities reference by this class will be implicitly included. public DbSet Invitees { get; set; } protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Conventions.Remove(); //base.OnModelCreating(modelBuilder); } } } 

 namespace WeddingPreparations.Dal { public class WeddingInitializer : System.Data.Entity.DropCreateDatabaseIfModelChanges { protected override void Seed(WeddingContext context) { //base.Seed(context); var invitees = new List { new Invitee{ FirstName= "FName1", LastName= "LName1", Attending = true, HotelRoomRequired= true, Notes="I'm the groom! :)"}, new Invitee{ FirstName= "FName2", LastName= "LName2", Attending = true, HotelRoomRequired= true, Notes="I'm the bride! :)"} }; invitees.ForEach(i => context.Invitees.Add(i)); context.SaveChanges(); } } } 

我在这个项目中的模型如下

 namespace WeddingPreparations.Models { public class Invitee { public int Id { get; set; } public string FirstName { get; set; } public string LastName { get; set; } public bool Attending { get; set; } public bool HotelRoomRequired { get; set; } public string Notes { get; set; } } } 

在mvc项目中,我有以下web.config文件…

     

在我的家庭控制器中,我正在执行以下代码……

 WeddingPreparations.Dal.WeddingContext ctx = new WeddingPreparations.Dal.WeddingContext(); var x = ctx.Invitees.ToList(); 

我应该创建数据库,如果我没有误解并用初始化程序中指定的数据播种…但是我得到的只是那个错误,我似乎无法弄清楚…任何方向表示赞赏。

更新

我尝试将项目重新创建为一个就像他们在教程中所做的那样,但我仍然会遇到同样的错误。 必须要丢失一些代码……要么我错过了……要么教程没有它。

在您的web.config文件中,您有:

      

WeddingPreparations.Dal.WeddingInitializer在名为WeddingPreparations.Dal.WeddingInitializer的程序KevinLisaWedding查找名为WeddingPreparations.Dal.WeddingInitializer的类。 由于您的程序集称为WeddingPreparations您需要将配置更改为: