7

staram się śledzić ten tutorial ... http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/creating-an-entity-framework-data-model-for-an-asp-net-mvc-application ale wciąż otrzymuję następujący błąd ...błąd bazy danych załadunku inicjatora z EF6

System.InvalidOperationException = { "Nie udało się ustawić z bazy inicjatora typ 'WeddingPreparations.Dal.WeddingInitializer, KevinLisaWedding' dla DbContext typu 'WeddingPreparations.Dal.WeddingContext' określonego w konfiguracji zastosowanie . Patrz wewnętrzną wyjątek dla szczegółów. "}

Wewnętrzna wyjątek ...

{ "nie można załadować typu 'WeddingPreparations.Dal.WeddingContext' z zestawu 'EntityFramework, wersja 6.0.0.0 = Kultura = neutralne TokenKluczaPublicznego = b77a5c561934e089'". „WeddingPreparations.Dal.WeddingContext”}

ślad stosu jest ...

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.<TryGetInitializerFromEntityFrameworkSection>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.<GetService>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.<GetService>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.<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.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.<BeginInvokeSynchronousActionMethod>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.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3c() 
    at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass45.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3e() 

ja również wyszukiwane wysokie i niskie, dlaczego ja dostaję ten błąd bez powodzenia a nd Pobrałem ukończony projekt i porównałem go do mojego bez żadnego szczęścia.

Mój obecny kod jest następujący.

W projekcie WeddingPreparations ...

namespace WeddingPreparations.Dal 
{ 
    public class WeddingContext : DbContext 
    { 
     public WeddingContext() 
      : base("WeddingContext") 
     { 

     } 

     // Any entities reference by this class will be implicitly included. 
     public DbSet<Invitee> Invitees { get; set; } 

     protected override void OnModelCreating(DbModelBuilder modelBuilder) 
     { 
      modelBuilder.Conventions.Remove<PluralizingTableNameConvention>(); 
      //base.OnModelCreating(modelBuilder); 
     } 
    } 
} 

i

namespace WeddingPreparations.Dal 
{ 
    public class WeddingInitializer : System.Data.Entity.DropCreateDatabaseIfModelChanges<WeddingContext> 
    { 
     protected override void Seed(WeddingContext context) 
     { 
      //base.Seed(context); 
      var invitees = new List<Invitee> 
      { 
       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(); 
     } 
    } 
} 

Mój model w tym projekcie jest następujący

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; } 
    } 
} 

W projekcie mvc Mam następujący internecie plik .config ...

<?xml version="1.0" encoding="utf-8"?> 
<!-- 
    For more information on how to configure your ASP.NET application, please visit 
    http://go.microsoft.com/fwlink/?LinkId=301880 
    --> 
<configuration> 
    <configSections> 

    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --></configSections> 
    <connectionStrings> 
    <add name="WeddingContext" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=WeddingInvites;Integrated Security=SSPI;" providerName="System.Data.SqlClient" /> 
    </connectionStrings> 
    <appSettings> 
    <add key="webpages:Version" value="3.0.0.0" /> 
    <add key="webpages:Enabled" value="false" /> 
    <add key="ClientValidationEnabled" value="true" /> 
    <add key="UnobtrusiveJavaScriptEnabled" value="true" /> 
    </appSettings> 
    <system.web> 
    <compilation debug="true" targetFramework="4.5" /> 
    <httpRuntime targetFramework="4.5" /> 
    </system.web> 
    <runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" /> 
     <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /> 
     <bindingRedirect oldVersion="1.0.0.0-5.0.0.0" newVersion="5.0.0.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Web.Optimization" publicKeyToken="31bf3856ad364e35" /> 
     <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="1.1.0.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" /> 
     <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" /> 
     <bindingRedirect oldVersion="0.0.0.0-1.5.2.14234" newVersion="1.5.2.14234" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" /> 
     <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="Ninject" publicKeyToken="c7192dc5380945e7" culture="neutral" /> 
     <bindingRedirect oldVersion="0.0.0.0-3.2.0.0" newVersion="3.2.0.0" /> 
     </dependentAssembly> 
    </assemblyBinding> 
    </runtime> 
    <system.webServer> 
    <handlers> 
     <remove name="ExtensionlessUrlHandler-Integrated-4.0" /> 
     <remove name="OPTIONSVerbHandler" /> 
     <remove name="TRACEVerbHandler" /> 
     <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" /> 
    </handlers> 
    </system.webServer> 
    <entityFramework> 
    <contexts> 
     <context type="WeddingPreparations.Dal.WeddingContext"> 
     <databaseInitializer type="WeddingPreparations.Dal.WeddingInitializer, KevinLisaWedding" /> 
     </context> 
    </contexts> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework" > 
    <parameters> 
     <parameter value="v11.0"/> 
    </parameters> 
    </defaultConnectionFactory> 
    <providers> 
     <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> 
    </providers> 
    </entityFramework> 
</configuration> 

I w moim domu mam kontrolera wykonując następujący kod ...

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

która ma utworzyć bazę danych, jeśli nie jestem pomylić i nasion go z danymi podanymi w inicjalizatorze ... jednak wszystko, co dostaję, to ten błąd i nie mogę tego zrozumieć ... każdy kierunek jest doceniany.

Aktualizacja

próbowałem odtworzyć projekt jako jeden, tak jak to miało miejsce w tutorialu i ale nadal skończyć z tym samym błędem. Musi być jakiś kod ... albo go przegapiłem ... albo sam kurs nie ma go.

+0

Jak nazywa się tworzony zespół? Czy to WeddingPreparations czy KevinLisaWedding? – DavidG

+0

KevinLisaWedding to projekt strony internetowej, a WeddingPreparations to biblioteka dll z modelami encji i kontekstem struktury encji. –

+1

Czy działa, jeśli ustawisz inicjator w konstruktorze 'DbContext', na przykład:' Database.SetInitializer (new WeddingInitializer()) ; ' – david004

Odpowiedz

21

W pliku web.config masz to:

<contexts> 
    <context type="WeddingPreparations.Dal.WeddingContext"> 
     <databaseInitializer type="WeddingPreparations.Dal.WeddingInitializer, KevinLisaWedding" /> 
    </context> 
</contexts> 

To mówi szukać klasy zwanej WeddingPreparations.Dal.WeddingInitializer w zespole o nazwie KevinLisaWedding.Ponieważ Twój zespół nazywa się WeddingPreparations, musisz zmienić konfigurację na:

<contexts> 
    <context type="WeddingPreparations.Dal.WeddingContext, WeddingPreparations"> 
     <databaseInitializer type="WeddingPreparations.Dal.WeddingInitializer, WeddingPreparations" /> 
    </context> 
</contexts> 
+0

DavidG Próbowałem już kilka razy. Właśnie przełączyłem to znowu i wciąż dostaję ten sam błąd. Dzieki za sugestie. –

+0

Spróbuj również określić typ kontekstu. Zaktualizowałem swoją odpowiedź. – DavidG

+0

Hell yes !!! To się udało. Dzięki. –

Powiązane problemy