Entity Framework - Получить имя объекта на основе идентификатора из другой таблицы - PullRequest
3 голосов
/ 13 марта 2020

Я не уверен, как правильно сформулировать этот вопрос, но вот проблема, с которой я сейчас сталкиваюсь в проекте бэкэнд-разработки.

Предположим, у меня есть таблица с именем Users. Я создаю модель под названием Пользователь:

public partial class User
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public id JobTitleId { get; set; }
        ... other fields
    }

У пользователя есть Должность, связанная с таблицей JobTitles. То, как его структура теперь называется FE, будет называть API, давайте назовем его словарным API, который возвращает список объектов с названиями должностей. Итак, что-то вроде этого: [{id: 1, title: 'aa'}, {id: 2, title: 'bb'} ...] Таким образом, на основании имеющегося jobtitleid, этот API будет вызываться и вид покажет заголовок на основе идентификатора.

Теперь я чувствую, что это не очень эффективно, так как если у нас есть сто или тысяча должностей, FE придется анализировать каждый объект, чтобы соответствовать его идентификатору.

Есть ли лучший способ отобразить название должности с указанным идентификатором? Я не могу вернуть название должности напрямую, потому что, если заголовок должности пользователя не обновляется, но эта конкретная форма с названиями должностей отправляется с запросом PUT, он возвращает имя заголовка должности вместо идентификатора обратно в таблицу пользователей.

Кроме того, название вакансии будет полем автозаполнения во внешнем интерфейсе, которое будет вызывать API-интерфейс на бэкэнде, когда пользователь вводит имя заголовка вакансии, возвращая, таким образом, идентификатор этого названия вакансии обратно на бэкэнд. когда пользователь обновляется с новым названием должности.

Извините, если я не достаточно ясно, я могу добавить более подробную информацию, если требуется.

1 Ответ

0 голосов
/ 13 марта 2020

ты пытался сделать что-то подобное? Я предполагаю, что JobTitleId принадлежит классу JobTitles

public partial class User
{
    public int Id { get; set; }
    public string Name { get; set; }
    public id JobTitleId { get; set; }

    [ForeignKey("JobTitleId")]
    public JobTitles JobTitles{ get; set; }
}

, так как, как вы знаете, классы являются объектами по ссылке, и когда вы передаете класс User в ваше представление, момент, когда вы меняете заголовок пользователя из раскрывающегося списка он также изменит JobTitleIID соответственно

...