錯誤“無法設置MyNamespace.MyCustomInitializer類型的數據庫初始化程序,MyAssembly”無法加載MyContext類型

entity-framework entity-framework-6 webforms

我正在使用帶有Entity Framework 6 alpha3的.NET4.5創建一個使用新SQL Compact數據庫的Web應用程序。該數據庫尚不存在。

我在網絡表單中有以下代碼:

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的實例ok,但是當執行下一行時,它會拋出下面的異常。我猜測因為數據庫不存在,它會嘗試調用初始化程序,但這會失敗。

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加載數據庫初始化程序時出錯

重置實體框架遷移

試試這個 - 這最終對我有用。如果您不使用localdb,請用SqlExpress / SqlServer實例替換數據源。

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
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因