Umbraco 8: получить ссылку на определение DocumentType в классе WebAPI

В) Как мне получить ссылку на определение DocumentType в моем классе UmbracoAPIController, чтобы я мог выполнять запросы LINQ к свойствам?

Общие сведения.
У меня есть конечная точка WebAPI, которую я вызываю из JS, и она извлекает Book элементов из моей БД. Я хочу фильтровать на основе переменной input, такой как ISBN, в моем запросе LINQ. Для этого мне нужно импортировать определение DocumentType в мой класс UmbracoAPIController.

Попробуйте следующее, где Book – это тип, к которому я хочу привести:

var parent = Umbraco.ContentAtRoot().First().Children().FirstOrDefault(x => x.Name == "Booklist");
if (parent != null) 
{
    var isbn = HttpContext.Current.Request.Params["isbn"];

    var books = parent.Children().Cast<Book>().Where(b => b.Isbn == isbn);

    foreach (var book in books) 
    {
        // Do something here....
    }
}

Перерывы с ошибкой:

 The type or namespace name 'Book' could not be found (are you missing a using directive or an assembly reference?)

Примечание. Пожалуйста, не говорите мне, что я все делаю "неправильно", если только у вас нет ясной и лучшей альтернативы, спасибо.


person Dave    schedule 23.06.2020    source источник


Ответы (1)


Я не знаю, поможет ли это, но я не делаю прямого приведения (даже не пробовал), а просто работаю со значением свойства по умолчанию, например.

var books = parent.Children().Where(page => page.HasProperty("Isbn") &&
                                        page.HasValue("Isbn") &&
                                        page.Value<string>("Isbn") == Isbn);

Однако интересно узнать, как работает прямой бросок.

person denford mutseriwa    schedule 24.06.2020