У меня есть условно пользователь. К нему привязана модель с отношениями один пользователь - много моделей.
Мне нужно, чтобы для одного пользователя, при создании новой модели или редактировании для создания новой связи в 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>