Контекст данных Linq-to-SQL не создает объект

Я работаю в среде .NET 2.0, недавно обновленной до среды .NET 3.5 (VS2008, VB.NET) в существующем проекте веб-сайта ASP.NET. Я могу создать класс Linq-to-SQL (также называемый DataContext?) в папке кода приложения, перетащить таблицы из активного соединения и сохранить его. Назовем его MyDB. Когда я перехожу к файлу кода программной части для своей страницы и пытаюсь объявить объект «MyDBDataContext», его нет в IntelliSense, что указывает на то, что он недоступен. Я проверил ссылки, и это должно быть установлено правильно, потому что я сделал файл .dbml. Я создал новый проект тестового приложения Windows, и он вел себя точно так, как ожидалось, и я мог следовать этот блог без проблем.

Есть ли что-то присущее веб-проектам, что не позволяет использовать эти автоматически сгенерированные объекты? Является ли код приложения подходящим местом для его объявления?

Если вы не можете сказать из вышесказанного, я новичок в отрасли и действительно новичок в LINQ.

Спасибо за вашу помощь.


person Watki02    schedule 01.10.2009    source источник


Ответы (2)


Попробуйте развернуть файл dbml и открыть файл designer.cs под ним и убедитесь, что класс DataContext находится в том же пространстве имен, что и класс отделенного кода. Если нет, либо измените пространство имен, либо включите его с оператором using Namespace вверху.

person Rex M    schedule 01.10.2009
comment
отличный! спасибо, это было... просто нужно было заново объяснить основы. - person Watki02; 02.10.2009

Если ваш dbml находится в папке внутри «/App_Code/», он может выбрать имя папки в качестве пространства имен. Например: «/App_Code/DAL» будет иметь пространство имен «DAL». Дайте ему пространство имен в дизайнере или просто используйте данное пространство имен, если это так.

person Joe Flateau    schedule 01.10.2009
comment
этот ответ был немного более тщательным и очень полезным! Благодарность - person Watki02; 02.10.2009