‘Tag’ не содержит определения для ‘FindTagById’

#c#

#c#

Вопрос:

Я пытаюсь вернуть что-то из своей базы данных.

Когда я вызываю метод для Tag объекта, он говорит, что для созданной мной функции нет определения, но из того, что я могу сказать, я определил функцию.

Сообщение об ошибке компилятора:

CS0117: 'Tag' does not contain a definition for 'FindTagById'

ManageWorker.ascx.cs:

 var tagGuid = tagId?.TryParseAs<Guid>().GetValueOrDefault();

var tag = Tag.FindTagById(tagGuid);
  

Tag.cs:

 public static Tag FindTagById(Guid? id)
{
    return Database.Find<Tag>(u => u.ID == id);
}
  

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

1. Куда вас приведет Visual Studio, когда вы нажмете клавишу F12 на Tag in Tag.FindTagById ? Может быть, у вас есть другой класс? Что дает автозаполнение при вводе Tag. ?

2. Ошибка компилятора означает, что вы ничего не вызываете. Программа не будет запущена. Скорее всего, вы забыли добавить ссылку на библиотеку, в которой Tag она определена, или using инструкцию для включения ее пространства имен

3. Нажатие клавиши F12 приводит меня к функции FindTagById, как и ожидалось. Это находится в пространстве имен app, которое я использую везде в том же файле c #. в заголовке ManageWorker.ascx.cs: использование приложения; использование App.Services;

4. Пробовали ли вы использовать код из FindTagById метода в вашем ManageWorker.ascx.cs файле — если да, работает ли это так, как вы ожидаете? Я не сужу ваш код, но если то, во что я верю; это Tag простой класс объектов; Я бы лично избегал любых вызовов базы данных из этого метода в первую очередь и помещал их в ваш собственный сервис или помощник, который занимается вводом-выводом базы данных 🙂

5. Я уже пробовал это сейчас. Он работает встроенным! но Tag объект довольно глубокий, у него есть несколько методов, таких как проверка перед отправкой в базу данных. он также имеет аналогичный метод FindByHirerAndName , который вызывает fine Tag.FindByHirerAndName(this.Import.Company, tagName);