Свойство идентификатора автозаполнения навигации для дочернего класса при вставке в базу данных с каркасом сущности - PullRequest
2 голосов
/ 27 июня 2019

Допустим, у меня есть классы User и CreditCard в приложении интернет-магазина:

User() {
  int Id;
  List<CreditCard>() CreditCards;
}

CreditCard() {
  int Id;
  int UserId:
  virtual User User;
}

Пользователю требуется как минимум одна CreditCard, а для CreditCard требуется Пользователь.В данный момент я использую следующую конфигурацию типа объекта:

Для пользователя:

 HasMany(x => x.CreditCards)
   .WithRequired(x => x.User)
   .HasForeignKey(x => x.UserId);

Для кредитной карты:

 HasRequired(x => x.User)
   .WithRequired(x => x.CreditCards)
   .HasForeignKey(x => x.UserId);

В данный момент все работает нормально,но я хочу добавить способ указать основную кредитную карту следующим образом:

User() {
  int Id;
  int MainCreditCardId;
  List<CreditCard>() CreditCards;
}

MainCreditCardId указывает на одну из карт из списка.

Проблема начинается с публикации нового пользователя в системе- Требуется основная кредитная карта, но у меня еще нет ее идентификатора, так как он заполнен базой данных.Как можно назначить этот идентификатор для MainCreditCardId?

Модель POST будет выглядеть следующим образом:

User() {
  int Id;
  CreditCard MainCreditCard;
  List<CreditCard>() CreditCards;
}

И ПОЛУЧИТЕ такую, как эта:

User() {
  int Id;
  int MainCreditCardId;
  List<CreditCard>() CreditCards;
}

OfКонечно, модели упрощены для нужд вопроса

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