Сначала не удается добавить контроллер в код asp.net MVC3 EF - PullRequest
0 голосов
/ 13 марта 2012

Я создал новый проект из шаблона.Я использовал шаблон набора инструментов Windows Phone Cloud, серверная часть которого является обычным проектом asv.net mvc3 с кодом EF 4.1 вначале.

Мой datacontext называется SqlDataContext и имеет следующий конструктор:

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

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

Моя строка подключения определена в web.config как:

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

Спасибо.

Редактировать: У меня нетпроблема с запуском приложения, только добавление нового контроллера.

1 Ответ

0 голосов
/ 13 марта 2012

Попробуйте заменить:

<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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...