Позвольте мне попытаться задать этот вопрос под другим углом.
Я заметил, что каждый раз, когда страница aspx отображается в браузере с использованием модели «веб-сайта», случайная сборка создается «на лету» во временных файлах ASP.NET. Анализ сборки в Reflector показывает, что класс, созданный для любого данного файла .aspx, находится в пространстве имен «ASP».
Итак, начиная с пустой директории «Temporary ASP.NET Files», я открыл свой ASP.NET «сайт» в VS2008 и запустил страницу по умолчанию. Сразу же я заметил, что внутри этой папки был создан случайный каталог. Проходя по пути, я нашел 2 созданные DLL: App_Code.1lywsqqz.dll и App_Web_iohekame.dll. Я предполагаю, что все страницы ASPX на веб-сайте скомпилированы в dll App_Web, а все в папке App_Code скомпилировано в App_Code.dll.
Так что, если мои файлы App_Code C # / VB.net находятся в пространстве имен «ASP», а мои файлы App_Web созданы в пространстве имен «ASP», почему я все еще получаю сообщение об ошибке «Не удалось загрузить тип» ASP.NothwindDataContext '?
Кто-то сказал: «Вам не нужны пространства имен в папке App_Code», но я пробовал без него и все равно получаю «Не удалось загрузить тип 'NorthwindDataContext'".
Так что же происходит между папкой App_Code, остальной частью сайта и пространствами имен?
EDIT:
Вот мой LinqDataSource в моем файле .aspx:
<asp:LinqDataSource ID="LinqDataSource1" runat="server"
ContextTypeName="NothwindDataContext" EnableUpdate="True"
TableName="Categories">
</asp:LinqDataSource>
Ни "NorthwindDataContext", ни "ASP.NorthwindDataContext" не работают.