2014-10-16 3 views
0

Я следовал этому руководству http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/creating-an-entity-framework-data-model-for-an-asp-net-mvc-application, но настроил его для проекта, над которым я работаю.Ошибка инициализатора базы данных Entity Framework

У меня возникают проблемы, когда я запускаю его, хотя - он не для инициализации БД и дает мне эту ошибку, когда я доступ к контроллеру, который нужно использовать DB:

Failed to set database initializer of type 'JustSpecIt.DAL.JustSpecItInitializer, JustSpecIt' for DbContext type 'JustSpecIt.DAL.JustSpecItAppContext, JustSpecIt' specified in the application

Мой инициализатору и файлы контекста находятся в папке DAL. В моем файле WebConfig у меня есть:

<entityFramework> 
<contexts> 
<context type="JustSpecIt.DAL.JustSpecItAppContext, JustSpecIt"> 
    <databaseInitializer type="JustSpecIt.DAL.JustSpecItInitializer, JustSpecIt" /> 
</context> 

И для моей строки подключения у меня есть:

<connectionStrings> 
<add name="JustSpecItAppContext" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=JustSpecIt;Integrated Security=SSPI;" providerName="System.Data.SqlClient"/> 
</connectionStrings> 

Я новичок в этом так, дайте мне знать, если больше требуется информация.

В соответствии с просьбой, вот мой инициализатор класс:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Data.Entity; 
using JustSpecIt.Models; 


namespace JustSpecIt.DAL 

{

public class JustSpecItInitialiser : System.Data.Entity.DropCreateDatabaseIfModelChanges<JustSpecItAppContext> 
    { 
     protected override void Seed(JustSpecItAppContext context) 
     { 
      var Projects = new List<Project> 
      { 
      new Project {ProjectName="Just Spec It", ClientID = "GR Corp", Description="Build Just Spec It Application"} 
      }; 

      Projects.ForEach(s => context.Projects.Add(s)); 
      context.SaveChanges(); 

      var UseCases = new List<UseCase> 
      { 
       new UseCase {ProjectID = 1, ActorID = 1, Title = "Print Specification"} 
      }; 

      UseCases.ForEach(s => context.UseCases.Add(s)); 
      context.SaveChanges(); 

      var Steps = new List<Step> 
      { 
       new Step {UseCaseID = 1, Content = "This is step 1"}, 
       new Step {UseCaseID = 1, Content = "This is step 2"}, 
       new Step {UseCaseID = 1, Content = "This is step 3"}, 
      }; 

      Steps.ForEach(s => context.Steps.Add(s)); 
      context.SaveChanges(); 

      var Queries = new List<Query> 
      { 
       new Query {UseCaseID = 1, QueryDescription = "We need to add more details to this Use Case!"} 
      }; 

      Queries.ForEach(s=> context.Queries.Add(s)); 
      context.SaveChanges(); 

      var Actors = new List<Actor> 
      { 
       new Actor {Title = "Business Analyst", Description = "This group will interact with the application to generate the use cases. They will follow Cockburn's writing process to produce the use cases in an effective way!"}, 
       new Actor {Title = "End System User", Description = "These users will use the application for two primary purposes. The first is to submit uses case titles (which in fact will be their goals). After the Business Analyst has entered full details into the application about how these goals will be carried out, the End System Users will use the application again to review and comment on them."} 
      }; 

      Actors.ForEach(s => context.Actors.Add(s)); 
      context.SaveChanges(); 
     } 
    } 
} 
+0

Можете ли вы показать, как выглядит ваш класс 'JustSpecItInitializer'? – DavidG

+0

Вы загружаете свой класс инициализатора в том же сборке или из другой сборки? – SDK

+0

Какую версию EF вы используете? –

ответ

3

JustSpecItInitiali сек эр или JustSpecItInitiali г эр? Проверить синтаксис.

+0

Хорошее место! Не могу понять это ... – DavidG

+0

Спасибо @ k4s0r42! – gazrolo4

Смежные вопросы