Нужна помощь в создании новой дочерней записи с внешним ключом родителя

Я создаю CRUD-приложение для управления бэкэндом моей компании и столкнулся с проблемой создания новой дочерней записи для родительской. Стандартный автоматически генерируемый контроллер на основе модели настроен на создание новой записи, но не новой дочерней записи, поэтому мне нужно изменить контроллер и модели. Речь идет о следующих моделях: Bundle.cs и Agreement.cs:

using System;
using System.Collections.Generic;

namespace AdminPortal.Models
{
    public partial class Bundle
    {
        public int Id { get; set; }
        public DateTime StartUtc { get; set; }
        public DateTime EndUtc { get; set; }
        public int Quantity { get; set; }
        public int? AgreementId { get; set; }
        public decimal? BundlePrice { get; set; }

        public virtual Agreement? Agreement { get; set; }
    }
}

Вход в полноэкранный режим Выход из полноэкранного режима
using System;
using System.Collections.Generic;

namespace AdminPortal.Models
{
    public partial class Agreement
    {
        public Agreement()
        {
            AgreementAmendments = new HashSet<AgreementAmendment>();
            Bundles = new HashSet<Bundle>();
            Invoices = new HashSet<Invoice>();
        }

        public int Id { get; set; }
        public int OrgId { get; set; }
        public string? AgreementNumber { get; set; }
        public string? IrespondReference { get; set; }
        public string? DocumentLink { get; set; }

        public virtual Organization Org { get; set; } = null!;
        public virtual ICollection<AgreementAmendment> AgreementAmendments { get; set; }
        public virtual ICollection<Bundle> Bundles { get; set; }
        public virtual ICollection<Invoice> Invoices { get; set; }
    }
}

Войти в полноэкранный режим Выход из полноэкранного режима

Это метод создания в контроллере

[HttpPost]
        [ValidateAntiForgeryToken]
        public async Task<IActionResult> Create([Bind("Id,StartUtc,EndUtc,Quantity,AgreementId,BundlePrice")] Bundle bundle)
        {
            if (ModelState.IsValid)
            {
                _context.Add(bundle);
                await _context.SaveChangesAsync();
                return RedirectToAction(nameof(Index));
            }
            return View(bundle);
        }
Войти в полноэкранный режим Выход из полноэкранного режима

Я новичок в EF Core, поэтому даже не знаю с чего начать.

Оцените статью
devanswers.ru
Добавить комментарий