Моделирование отношений один ко многим - Модель против ViewModel - PullRequest
0 голосов
/ 03 декабря 2018

В настоящее время я пытаюсь смоделировать класс объекта с отношением один ко многим с другим объектом в Model-First MVC - объект «Контакт», который включает, помимо прочего, список (ссылки на?) Одинили более "Интересы", выбранные при создании Контакта из полного списка интересов базы данных.Насколько я понимаю, каждый использует ViewModel, чтобы приспособить такие отношения, но я думаю, что я неправильно понимаю, что идет или не идет в модели против viewModel.

В настоящее время у меня есть модель контактов:

public class Contact
{
    public int Id { get; set; }

    public string Email { get; set; }

    public virtual List<Interest> Interests { get; set; }

    public List<int> InterestIds { get; set; }
}

Модель интереса:

public class Interest
{
    public int Id { get; set; }

    public string Name { get; set; }
}

Модель представления контакта:

public class ContactViewModel
{
    public int Id { get; set; }

    public string Email { get; set; }

    public List<int> InterestIds { get; set; }

    public List<InterestViewModel> Interests { get; set; }
}

И модель представления интереса

public class ContactViewModel
{
    public int Id { get; set; }

    public string Email { get; set; }

    public List<int> InterestIds { get; set; }

    public List<InterestViewModel> Interests { get; set; }
}

Но я 'я получаю конфликтующие аккаунты о том, что и куда.

Короче говоря, я намереваюсь конечный результат, что я должен иметь возможность выбрать одно или несколько Интересов (желательно с рядом флажков) из представления Создать для сохранения вновый контакт, а затем из представления «Индекс» можно будет фильтровать таблицу контактов, по которой они имеют или не имеют интересы.У меня уже запланирована логика для большей части этого, но на данный момент, как я должен проектировать свои Модели по сравнению с моими ViewModels, чтобы наилучшим образом приспособить это видение?

1 Ответ

0 голосов
/ 03 декабря 2018

ваша Contact сущность имеет логическую ошибку, вы должны удалить свойство InterestIds из сущности Contact и добавить свойство с именем ContactId к вашей сущности Interest.он предоставляет внешний ключ для связи (отношение один ко многим от Contact до Interest).однако если ViewModel равен Model, то вам не нужна никакая ViewModel.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...