Данные из формы отправляются в связанную таблицу
Моя проблема заключается в том, что при отправлении данных из формы в базу данных, но они отправляются в связанную таблицу
Я отправляю данные в две таблицы: EquipmentTradeOffers и Orders
Orders:
public class Order
{
public int Id { get; set; }
public bool IsDeleted { get; set; }
public DateTime OrderDate { get; set; }
public DateTime DeliveryDate { get; set; }
public int EmployeeId { get; set; }
public Employee Employee { get; set; }
public ICollection<EquipmentTradeOffer> EquipmentTradeOffers { get; set; }
public ICollection<MaterialTradeOffer> MaterialTradeOffers { get; set; }
public Order()
{
}
}
EquipmentTradeOffers:
public class EquipmentTradeOffer
{
public int OrderId { get; set; }
public int EquipmentId { get; set; }
public bool IsDeleted { get; set; }
public double Price { get; set; }
public int Count { get; set; }
public Order Order { get; set; }
public Equipment Equipment { get; set; }
public EquipmentTradeOffer()
{
}
}
Отправка идёт из этой формы:
<form method="post">
<div class="modal-body">
<div class="justify-content-between align-items-start d-flex row g-3">
<div class="col">
<label asp-for="NewEquipmentTradeOffer.Equipment" class="fw-bold fs-6">Наименование</label>
<select required asp-for="NewEquipmentTradeOffer.EquipmentId" class="form-control" asp-items="@Model.Equipments">
<option value="">Выберите оборудование</option>
</select>
<span asp-validation-for="NewEquipmentTradeOffer.EquipmentId" class="text-danger"></span>
</div>
<div class="col">
<label asp-for="NewEquipmentTradeOffer.OrderId" class="fw-bold fs-6">ID Заказа</label>
<input required type="text" asp-for="NewEquipmentTradeOffer.OrderId" id="input1" class="form-control" oninput="this.value = this.value.replace(/[^0-9]/g, '')" placeholder="ID" />
<input type="hidden" asp-for="NewOrder.Id" id="input2" />
<span asp-validation-for="@Model.NewEquipmentTradeOffer.OrderId" class="text-danger"></span>
</div>
</div>
<div class="mb-2">
<label asp-for="NewEquipmentTradeOffer.Equipment.Supplier" class="fw-bold fs-6">Поставщик</label>
<select required asp-for="NewEquipmentTradeOffer.Equipment.SupplierId" class="form-control" asp-items="@Model.Suppliers">
<option value="">Выберите поставщика</option>
</select>
<span asp-validation-for="NewEquipmentTradeOffer.Equipment.SupplierId" class="text-danger"></span>
</div>
<div class="mb-2">
<div class="justify-content-between align-items-start d-flex row g-3">
<div class="col">
<label asp-for="@Model.NewEquipmentTradeOffer.Price" class="fw-bold fs-6">Стоимость</label>
</div>
<div class="col">
<label asp-for="@Model.NewEquipmentTradeOffer.Count" class="fw-bold fs-6">Количество</label>
</div>
</div>
<div class="justify-content-between align-items-start d-flex row g-3">
<div class="col">
<input required asp-for="@Model.NewEquipmentTradeOffer.Price" type="text" class="form-control " placeholder="Стоимость" oninput="this.value = this.value.replace(/[^0-9\,]/g, '')" />
<span asp-validation-for="@Model.NewEquipmentTradeOffer.Price" class="text-danger"></span>
</div>
<div class="col">
<input required asp-for="@Model.NewEquipmentTradeOffer.Count" type="text" class="form-control" placeholder="Количество" oninput="this.value = this.value.replace(/[^0-9]/g, '')" />
<span asp-validation-for="@Model.NewEquipmentTradeOffer.Count" class="text-danger"></span>
</div>
</div>
</div>
<div>
<div class="justify-content-between d-flex row g-3">
<div class="col">
<label asp-for="@Model.NewOrder.OrderDate" class="fw-bold fs-6">Дата заказа</label>
</div>
<div class="col">
<label asp-for="@Model.NewOrder.DeliveryDate" class="fw-bold fs-6">Дата доставки</label>
</div>
</div>
<div class="justify-content-between d-flex row g-3">
<div class="col-md-6 ">
<input required asp-for="@Model.NewOrder.OrderDate" type="date" class="form-control" placeholder="Дата" />
<span asp-validation-for="@Model.NewOrder.OrderDate" class="text-danger"></span>
</div>
<div class="col-md-6 ">
<input required asp-for="@Model.NewOrder.DeliveryDate" type="date" class="form-control" />
<span asp-validation-for="@Model.NewOrder.DeliveryDate" class="text-danger"></span>
</div>
</div>
<div class="mb-2">
<label asp-for="NewOrder.Employee" class="fw-bold fs-6">Заказчик (Сотрудник)</label>
<select required asp-for="NewOrder.EmployeeId" class="form-control" asp-items="@Model.Employees">
<option value="">Выберите сотрудника</option>
</select>
<span asp-validation-for="NewOrder.EmployeeId" class="text-danger"></span>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-outline-danger" data-bs-dismiss="modal">Закрыть</button>
<button type="submit" class="btn btn-outline-success">Сохранить</button>
</div>
</form>
Метод для отправки данных:
public IActionResult OnPost()
{
_context.EquipmentTradeOffers.Add(NewEquipmentTradeOffer);
_context.Orders.Add(NewOrder);
_context.SaveChanges();
return RedirectToPage("/EquipmentArrival");
}
Источник: Stack Overflow на русском