Вот кое-что, что я нашел с философией «соглашения о конфигурации», когда речь идет о попытке подключиться к существующим базам данных (как вы делаете).
Если ваш класс DbContext (например, Northwind) находится впространство имен (например, MvcProject), по какой-то причине EF не будет сопоставлять имя класса со строкой подключения в web.config с именем "Northwind" (или "MvcProject.Northwind"), а затем просто создаст строку подключенияпо умолчанию используется локальный экземпляр SQLEXPRESS с базой данных «MvcProject.Northwind».Это будет пустая база данных.И вы сломаете голову, пытаясь понять, почему вы не получаете данные обратно, пока не поймете, что не подключены к нужной БД.
То, как я это обошел (не элегантно, ноэто самый быстрый способ, который я нашел, чтобы исправить это): добавьте конструктор в ваш класс DbContext, который вызывает базу с именем строки подключения в web.config - например,
namespace MvcProject
{
public class Northwind : DbContext
{
public Northwind() : base("Northwind") {}
}
}
Надеюсь, что кто-то там поможет; -)