@AlkesPro

Как создать ограничение на количество элементов для связи один ко многим (ASP.NET core MVC + EF)?

У меня есть условно пользователь. К нему привязана модель с отношениями один пользователь - много моделей.

Мне нужно, чтобы для одного пользователя, при создании новой модели или редактировании для создания новой связи в SQL, было ограничение на количество моделей до 4. Тобишь 1 пользователь и максимум 4 модели.
Определение пользователя:
public class User
    {
        [MaxLength(30)] [NotNull]
        public string m_Name { get; set; }
        [Key]
        public int m_ID { get; set; }

        public List<Book> Book { get; set; }
    }


Определение модели для связи:
public class Book
    {
        [Key]

        public int m_ID { get; set; }
        [MaxLength(40)] [NotNull]
        public string m_Name { get; set; }
        [MaxLength(100)] [NotNull]
        public string m_Description { get; set; }

        public int? UserID { get; set; }
        public User User { get; set; }
    }


И к примеру приложу код контроллера, который создаёт книгу:
public IActionResult CreateBook()
        {
            return View();
        }

        [HttpPost]
        public async Task<IActionResult> CreateBook(Book book)
        {
            db.Books.Add(book);
            await db.SaveChangesAsync();
            return RedirectToAction("Index");
        }


<form asp-action="CreateBook" asp-controller="Home">
        <div class="form-group">
            <label asp-for="m_Name" class="control-label">Название книги</label>
            <input type="text" maxlength="40" placeholder="Введите название книги, максимальная длинна - 40 символов" asp-for="m_Name" class="form-control" />
        </div>

        <div class="form-group">
            <label asp-for="m_Description" class="control-label">Описание книги</label>
            <input type="text" maxlength="100" placeholder="Введите краткое описание книги, максимальная длинна - 100 символов" asp-for="m_Description" class="form-control" />
        </div>

        <div class="form-group">
            <label asp-for="UserID" class="control-label">ID пользователя</label>
            <input type="text" maxlength="4" placeholder="Введите id нового пользователя" asp-for="UserID" class="form-control" />
        </div>

        <div class="form-group">
            <input type="submit" value="Отправить" class="btn btn-outline-dark" />
        </div>
    </form>
  • Вопрос задан
  • 171 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы