EntityFramework не видит ConnectionString в App.config

Я изучаю Code First EntityFramework вместе с ASP.Net MVC 3. Сначала мой тривиальный класс EFDbContextбыл помещен в проект WebUImvc в папку Concrete.

 public class EFDbContext : DbContext
 {
     public DbSet<Product> Products { get; set; }
 }

И он был поглощен через

 public class EFProductRepository : IProductRepository
 {
    private EFDbContext context = new EFDbContext();

    public IQueryable<Product> Products
    {
        get
        {
            return context.Products;
        }
    }
 }

где

public interface IProductRepository
{
    IQueryable<Product> Products { get; }
}

Поэтому я добавил следующий код в корневой файл Web.config:

 <connectionStrings>
      <add name="WebUI.Concrete.EFDbContext" connectionString="Data Source=HORGH\SQLSERVER2008;Initial Catalog=SportStore;Integrated Security=True;Pooling=False"
providerName="System.Data.SqlClient"/>
 </connectionStrings>

и сработало .

Затем я решил выделить его в отдельный проект DomainClass Library. Там у меня есть файл App.config. Поэтому я решил переместить туда свою строку подключения, и она стала:

<connectionStrings>
      <add name="Domain.Concrete.EFDbContext" connectionString="Data Source=HORGH\SQLSERVER2008;Initial Catalog=SportStore;Integrated Security=True;Pooling=False"
providerName="System.Data.SqlClient"/>
 </connectionStrings>

Но в конце концов Э.Ф. перестал его видеть .

EFProductRepositoryи EFDbContextпереместились в проект Domainсо своей корневой папкой Concrete. Таким образом, код, вызывающий конструктор, находится в проекте EFProductRepository, т.е. в проекте Domain.

Я попытался переименовать App.config в Web.Config; попытался вернуть строку подключения обратно в Web.config проекта WebUI. Это тоже не работает.

Что я делаю не так?

8
задан horgh 20 August 2012 в 05:40
поделиться