Ошибка «Не удалось установить инициализатор базы данных типа MyNamespace.MyCustomInitializer, MyAssembly» не удалось загрузить тип MyContext

entity-framework entity-framework-6 webforms

Вопрос

Я создаю веб-приложение с использованием .NET4.5 с Entity Framework 6 alpha3, которое использует новую базу данных SQL Compact. База данных еще не существует.

У меня есть следующий код в веб-форме:

public IQueryable<Job> listJobs_GetData()
{
    var db = new JournalistContext();
    IQueryable<Job> query = db.Jobs.Where(d => d.JobStart > DateTime.Now)
        .OrderBy(s => s.JobStart)
        .Take(10);
    return query;
}

где JournalistContext происходит из DbContext. Он создает экземпляр JournalistContext в порядке, но при выполнении следующей строки он выдает исключение ниже. Я предполагаю, что база данных не существует, она пытается вызвать инициализатор, но это не удается.

public IQueryable<Job> listJobs_GetData()
{
    var db = new JournalistContext();
    IQueryable<Job> query = db.Jobs.Where(d => d.JobStart > DateTime.Now)
        .OrderBy(s => s.JobStart)
        .Take(10);
    return query;
}

Как описано здесь http://msdn.microsoft.com/en-us/data/jj556606 Я создал пользовательский инициализатор базы данных, который в настоящее время является пустым классом:

public IQueryable<Job> listJobs_GetData()
{
    var db = new JournalistContext();
    IQueryable<Job> query = db.Jobs.Where(d => d.JobStart > DateTime.Now)
        .OrderBy(s => s.JobStart)
        .Take(10);
    return query;
}

Мой файл web.config ссылается на этот инициализатор следующим образом:

public IQueryable<Job> listJobs_GetData()
{
    var db = new JournalistContext();
    IQueryable<Job> query = db.Jobs.Where(d => d.JobStart > DateTime.Now)
        .OrderBy(s => s.JobStart)
        .Take(10);
    return query;
}

Я в тупике! Есть идеи?

Еще одна вещь, которую я заметил: эти строки появились в моем файле web.config. Я не уверен, как они были добавлены или почему.

public IQueryable<Job> listJobs_GetData()
{
    var db = new JournalistContext();
    IQueryable<Job> query = db.Jobs.Where(d => d.JobStart > DateTime.Now)
        .OrderBy(s => s.JobStart)
        .Take(10);
    return query;
}

Большое спасибо, Марк.

Популярные ответы

Моя проблема связана с моей строкой соединения.

Человек, попробовав следующие ссылки, я не имел успеха. Я пытался подключиться к моему экземпляру SQLEXPRESS. Я пытался:

Инициализатор загрузки начальной загрузки загрузки с EF6

Сбросить миграцию Entity-Framework

Попробуйте это вместо этого - это, наконец, сработало для меня. Замените источник данных экземпляром SqlExpress / SqlServer, если вы не используете localdb.

Enable-Migrations -ConnectionString "Data Source=.\SQLEXPRESS;Initial Catalog=[your database name];User Id=[your user name];Password=[your password];Integrated Security=SSPI;" -ConnectionProviderName "System.Data.SqlClient" -Force -Verbose

Add-Migration -Name "Initial" -ConnectionString "Data Source=.\SQLEXPRESS;Initial Catalog=[your database name];User Id=[your user name];Password=[your password];Integrated Security=SSPI;" -ConnectionProviderName "System.Data.SqlClient" -Force -Verbose

Update-Database -Force -ConnectionString "Data Source=.\SQLEXPRESS;Initial Catalog=[your database name];User Id=[your user name];Password=[your password];Integrated Security=SSPI;" -ConnectionProviderName "System.Data.SqlClient" -Verbose

Не стесняйтесь комментировать, и я могу продолжать пытаться помочь, если у вас все еще есть эта проблема.

Это был ресурс, который я наконец нашел, который помог мне понять многое о том, что я делаю.

https://coding.abel.nu/2012/03/ef-migrations-command-reference/




Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему