В моем случае ни один из перечисленных ответов не сработал, и поэтому я публикую это.
В моем случае работа на Visual Studio и запуск с IIS Express работали нормально. Но когда я развертывал с использованием сценариев Nant в качестве автономного веб-сайта, возникали ошибки. Я перепробовал все приведенные выше предложения, а затем понял, что DLL, сгенерированная скриптом nant, была намного меньше, чем сгенерированная VS. И тогда я понял, что Нант не смог найти файлы .csdl, .msl и .ssdl. Таким образом, существует два способа решения этой проблемы: один - скопировать необходимые файлы после того, как Visual Studio их сгенерирует, и включить их в развертывание сборки. А затем в Web.config укажите путь как:
"metadata=~/bin/MyDbContext.csdl|~/bin/MyDbContext.ssdl|~/bin/MyDbContext.msl;provider=System.Data.SqlClient;...."
Предполагается, что вы вручную скопировали файлы в каталог bin сайта, на котором вы работаете. Если он находится в другом каталоге, измените путь соответствующим образом.
Второй метод - выполнить EdmGen.exe в сценарии Nant, сгенерировать файлы и затем включить их в качестве ресурсов, как это сделано в примере ниже:
https://github.com/qwer/budget/blob/master/nant.build