Проблема в том, что вы говорите LINQPad, чтобы вы обновили свой набранный DbContext с строкой подключения провайдера вместо строки подключения Entity Framework .
Вы получите ту же ошибку в Visual Studio, если создадите свой набранный DbContext с помощью строки подключения поставщика.
Строка подключения к провайдеру действительна, только если вы делаете код первым (в этом случае EF определяет модель). В вашем случае EDM является частью вашего проекта и встроен в вашу сборку; поэтому вы должны указать полную строку подключения EF, как указано в вашем app.config, чтобы EF мог ее найти:
metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string="data source=.;initial catalog=TestDatabase;integrated security=True;multipleactiveresultsets=True;App=EntityFramework"
Другое решение - использовать следующую строку подключения, которая относится к файлу app.config:
name=TestDatabaseEntities
Если вы сделаете это в LINQPad, обязательно укажите, где находится файл app.config, в предоставленном текстовом поле.
Более тонкий момент заключается в том, что файл T4 для вашего DbContext отличается от файла по умолчанию, который создает VS, в том смысле, что в вашем DbContext отсутствует следующий код:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}
Если это переопределение присутствует, оно дает более полезное сообщение об ошибке, если вы указали неправильный тип строки подключения.