Я нахожусь в процессе обучения. NET Core 3.1 и EF и решили начать свой собственный проект. Я хотел настроить свои модели так, чтобы я мог создать следующие отношения:
Пользователь -1-to-Many->
Событие -1-to-many->
EventMember -1-to-many->
Пользователь
Я создал Событие API для проверки своих изменений, но мне не повезло.
Я представлял JSON токен выглядит следующим образом:
"Event" {
"id" :
"name" :
"userId" :
"eventMember" : {
"id" :
"eventId" :
"UserId" :
"user" : {
"id" :
"name" :
}
{
"id" :
"name" :
}
{
"id" :
"name" :
}
}
{
"id" :
"eventId" :
"user" : {
"id" :
"name" :
}
{
"id" :
"name" :
}
{
"id" :
"name" :
}
}
}
User.cs
User {
public int Id {Get; Set;}
public string Name{Get; Set;}
public ICollection<Event> Event {Get; Set;}
}
Event.cs
Event {
public int Id {Get; Set;}
public string Name{Get; Set;}
public int UserId {Get; Set;}
public User User {Get; Set;}
public ICollection<EventMember> EventMember {Get; Set;}
}
EventMember.cs
EventMember {
public string Id {Get; Set;}
public string Name{Get; Set;}
//This is where I'm not sure How I would go about the relationship to User
public User User {Get; Set;}
}
Вот мои вопросы:
- Здесь есть круговая зависимость, это плохая практика?
- Было бы лучше сохранить Пользователь независимым от других моделей и просто заполнить userId в таблице событий вручную в контроллере?
- Если я получу настройку отношений правильно, когда я вызываю мой Event API, EF будет возвращать результат с другими вложенными объектами, такими как EventMember и User, автоматически, или это то, что мне нужно заполнить вручную, например:
event.EventMember = _eventMemberRepository.FirstOfDefault(MyEventMemberId); //Something like that, basically call the repo to get the object and populate it in the parent object
Но самое главное, как правильно настроить модели для этих отношений в EF? Любая помощь очень ценится. Спасибо всем.