Использование термина «контекст» в. Net Core - PullRequest
1 голос
/ 29 апреля 2020

Может ли кто-нибудь объяснить мне значение этих двух терминов: "_ context" и "context" ?

Исходя из Basi c, Pascal и ASPX (VB ) на страницы C# и Razor, я постоянно неправильно понимаю недавнюю терминологию. Net. Я считаю, что единственным существенным контекстом (который так и называется) в моем приложении базы данных является контекст, то есть класс, производный от DbContext, который обрабатывает соединения с базой данных. Тем не менее, это всегда, кажется, обрабатывается косвенным образом. В учебных руководствах я вижу примеры:

public class CreateModel : DepartmentNamePageModel
    {
        private readonly ContosoUniversity.Data.SchoolContext _context;

        public CreateModel(ContosoUniversity.Data.SchoolContext context)
        {
            _context = context;
        }

Если в первой строке функции создается новый экземпляр контекста , почему (поскольку я уже определил это и могу перечислить элементы из моих таблиц) я получаю синтаксическую ошибку "The name '_context' does not exist in the current context", когда я адаптирую ее в свой собственный код? Я добавил все ссылки в верхней части примеров страниц. Зачем нам нужна модель внутри модели, и что делает последнее утверждение?

Я искал в этом уроке разъяснения и сделал поиск, но все, что я прочитал, похоже, предполагает, что мы уже свободно говорим таким образом, используя объекты. Мне особенно нужно это сделать asp, потому что единственный работающий пример раскрывающегося списка, который я могу найти, использует эти перекрестные ссылки, и то, что я ожидал сделать простой задачей, связало меня в узлы.

1 Ответ

2 голосов
/ 29 апреля 2020

Конструктор получает экземпляр ContosoUniversity.Data.SchoolContext (например, внедренный), а затем вы устанавливаете его в поле с именем _context. Обе переменные ссылаются на один и тот же объект. Если вы не хотите иметь два разных имени, вы должны использовать «this» следующим образом:

    public class CreateModel : DepartmentNamePageModel
    {
        private readonly ContosoUniversity.Data.SchoolContext context;

        public CreateModel(ContosoUniversity.Data.SchoolContext context)
        {
            this.context = context; // "this" refers to the field defined in this class and not the parameter of the constructor
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...