Допустим, у меня есть классы 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Конечно, модели упрощены для нужд вопроса