Я использую Blazor
приложение на стороне сервера с Entity Framework
.
У меня есть родительская сущность Booking
с дочерней коллекцией Tours
. У меня есть страница, на которой я добавляю туры в коллекцию Tours
бронирования .
public class Booking
{
IEnumerable<Tours> Tours { get; set; }
}
У меня есть основной родительский компонент бронирования, который является лишь оболочкой для подкомпонентов бронирования, люблю туры. Я передаю дочернюю коллекцию дочернему компоненту, как показано на странице бронирования:
<Tours Tours="Booking.Tours" />
@code {
protected override async Task OnInitializedAsync()
{
Booking = await BookingService.GetBooking(reference);
}
}
Однако я обнаружил, что при добавлении Tour страница не обновляется с новыми добавлен тур, если я не позвоню, чтобы забрать бронирование с его дочерними элементами.
private async Task addTour(TourState state)
{
var newBookingTour = new BookingTour();
var newTour = await BookingTourService.CreateBookingTour(newBookingTour);
// UI ONLY UPDATES WHEN I DO THIS
Booking = await BookingService.GetBooking();
}
Вот обобщение c method
, которое я использую для сохранения сущностей в DB
:
public async Task<TEntity> Upsert(TEntity item)
{
var entity = this.Context.Update(item);
await this.SaveChangesAsync();
return entity.Entity;
}
Должен ли я снова звонить на DB
? Конечно, Entity Framework
должен взять вновь добавленную сущность и передать ее в UI
? Я чувствую, что чего-то здесь не хватает!
Любая помощь приветствуется, поскольку я новичок в EF
и Blazor
.