0

我已經從模板創建了一個新項目。我使用了windows phone雲端工具箱模板,服務器端是第一個使用EF 4.1代碼的常規asp.net mvc3項目。無法在asp.net MVC3 EF代碼中首先添加控制器

我的datacontext被稱爲SqlDataContext並具有下面的構造:在web.config中定義爲

public SqlDataContext() 
      : base(ConfigReader.GetConfigValue("SqlSampleDataContextConnectionString")) 
     { 
     } 

     public DbSet<SqlSampleData> SqlSampleData { get; set; } 

我的連接字符串:

<connectionStrings> 
    <add name="ApplicationServices" connectionString="Data Source=.\SQLEXPRESS;Integrated Security=true;User Instance=true;AttachDBFilename=|DataDirectory|\WPCloudApp26.mdf;Initial Catalog=WPCloudApp26;MultipleActiveResultSets=True" providerName="System.Data.SqlClient" /> 
    </connectionStrings> 

我添加了一個名爲Report新模式,現在我想用添加控制器嚮導創建新的控制器,使用我的新型Report型號和SqlDataContext。當我嘗試創建時出現以下錯誤:

Unable to retrieve metadata for 'WPCloudApp1.Web.Models.Report'. 
The 'SqlSampleDataContextConnectionString' setting is not available. 
Parameter name: key 

而且它無法創建新的控制器。

我在做什麼錯了?我在這個主題中的背景非常稀少,所以請儘量簡化。

我的報告類:

namespace WPCloudApp26.Web.Models 
{ 
    using System; 
    using System.ComponentModel.DataAnnotations; 

    // Summary: 
    //  Sample Entity Framework 4.1 data class for SQL Azure. 
    //  Using EF 4.1 Code-First, the database structure will be created to mirror this class properties. 
    //  For more information, visit the ADO.NET Entity Framework website at http://msdn.microsoft.com/data/aa937723 
    public class Report 
    { 
     [Key] 
     public int Id { get; set; } 

     public string UserId { get; set; } 

     public string Description { get; set; } 

     public DateTime Date { get; set; } 

     public bool IsPublic { get; set; } 
    } 
} 

感謝。

編輯: 我沒有問題運行應用程序,只添加一個新的控制器。

+0

您的連接字符串鍵是 「ApplicationServices」 的值,但你正在使用GetConfigvalue方法中的一些其他鍵 – 2012-03-13 11:00:15

+0

@Ravi當我運行該應用程序,一切工作正常(我沒有改變任何東西從模板),所以我想連接字符串是好的 – Michael 2012-03-13 11:02:05

+0

讓我顯示你的「Report.cs」類,並添加一個新的模型類後,你需要做一個「重建」 WPCloudApp1 ==>右鍵單擊==>重建 – Razor 2012-03-13 11:36:49

回答

0

嘗試更換:

<connectionStrings> 
<add name="ApplicationServices" connectionString="Data Source=.\SQLEXPRESS;Integrated Security=true;User Instance=true;AttachDBFilename=|DataDirectory|\WPCloudApp26.mdf;Initial Catalog=WPCloudApp26;MultipleActiveResultSets=True" providerName="System.Data.SqlClient" /> 
</connectionStrings> 

通過:

<connectionStrings> 
<add name="SqlDataContext" connectionString="Data Source=.\SQLEXPRESS;Integrated Security=true;User Instance=true;AttachDBFilename=|DataDirectory|\WPCloudApp26.mdf;Initial Catalog=WPCloudApp26;MultipleActiveResultSets=True" providerName="System.Data.SqlClient" /> 
</connectionStrings> 

上下文應存放在web.config

+0

謝謝,應用程序仍在編譯和運行正常,但添加控制器嚮導仍然給我錯誤。這個「windows phone雲應用程序」模板真的讓我很頭疼。關於它的文檔非常糟糕。如果我能夠實現它的功能,可以爲我節省很多連接服務器和客戶端的工作。 – Michael 2012-03-13 12:05:06

+0

問題發生在哪裏?當你右鍵點擊你的「控制器」文件夾?點擊「添加 - >控制器」後?在「添加控制器」提示後? – Razor 2012-03-13 12:09:24

+0

我右鍵單擊控制器文件夾,添加控制器,選擇控制器與讀/寫...使用實體框架,把我的報告模型和我的SqlDataContext,點擊好吧,然後我得到錯誤 – Michael 2012-03-13 12:29:39