#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
inTag.FindTagById
? Может быть, у вас есть другой класс? Что дает автозаполнение при вводеTag.
?2. Ошибка компилятора означает, что вы ничего не вызываете. Программа не будет запущена. Скорее всего, вы забыли добавить ссылку на библиотеку, в которой
Tag
она определена, илиusing
инструкцию для включения ее пространства имен3. Нажатие клавиши F12 приводит меня к функции FindTagById, как и ожидалось. Это находится в пространстве имен app, которое я использую везде в том же файле c #. в заголовке ManageWorker.ascx.cs: использование приложения; использование App.Services;
4. Пробовали ли вы использовать код из
FindTagById
метода в вашемManageWorker.ascx.cs
файле — если да, работает ли это так, как вы ожидаете? Я не сужу ваш код, но если то, во что я верю; этоTag
простой класс объектов; Я бы лично избегал любых вызовов базы данных из этого метода в первую очередь и помещал их в ваш собственный сервис или помощник, который занимается вводом-выводом базы данных 🙂5. Я уже пробовал это сейчас. Он работает встроенным! но
Tag
объект довольно глубокий, у него есть несколько методов, таких как проверка перед отправкой в базу данных. он также имеет аналогичный методFindByHirerAndName
, который вызывает fineTag.FindByHirerAndName(this.Import.Company, tagName);