Почему я не могу использовать свои классы из папки Models в Global.asax.cs?

#c# #asp.net #visual-studio-2017

#c# #asp.net #visual-studio-2017

Вопрос:

Я пытаюсь выполнить следующий проект в учебных целях: https://learn.microsoft.com/ru-ru/aspnet/web-forms/overview/getting-started/getting-started-with-aspnet-45-web-forms/create_the_data_access_layer

Но я застрял на шаге «Обновление файла Global.asax» — VS не позволяет мне импортировать WingtipToys.Пространство имен Models в файл Global.asax.cs.

Вот структура проекта, Globa.asax.cs и ошибка «using»

Все делается в соответствии с приведенным выше руководством Microsoft. Почему я не могу импортировать свои модели в файл global.asax.cs?

Мой класс ProductDatabaseInitializer:

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.Entity;

namespace WingtipToys.Models
{
    public class ProductDatabaseInitializer : DropCreateDatabaseIfModelChanges<ProductContext>
    {
        protected override void Seed(ProductContext context)
        {
            GetCategories().ForEach(c => context.Categories.Add(c));
            GetProducts().ForEach(p => context.Products.Add(p));
        }....
  

Комментарии:

1. пожалуйста, опубликуйте свой ProductDatabaseInitializer класс

2. Конечно, добавил это к моему вопросу.

3. можете ли вы попробовать очистить и перестроить решение, а также закрыть и открыть visual studio … я не вижу никаких причин, по которым ваш код не работает .. вы сохранили ProductDatabaseInitializer класс после его создания и определения пространства имен?

4. Да, я снова открыл VS и сохранил все. Все та же проблема: prntscr.com/nalw2z

5. Попробуйте изменить свое пространство имен с WingtipToys.Models на just Models . Я предполагаю, что ваше пространство имен по умолчанию (посмотрите на свойства проекта) WingtipToys , так что ваша модель действительно WingtipToys.WingtipToys.Models включена. Кроме того, попробуйте загрузить 30-дневную демонстрацию Resharper. Это действительно хорошо для исправления этого материала для вас. В результате мне почти никогда не приходится тратить время на возню с пространствами имен.

Ответ №1:

Что действительно помогло, так это воссоздание всех классов в каталоге Models (удаление всех старых классов и создание новых с тем же кодом) — затем я начал видеть свои классы из файла Global.asax.cs.

Может быть, это может кому-то помочь.