Модель просмотра:
namespace Projeto_Vendedores.Models.ViewModels
{
public class SellerFormViewModel
{
public Seller Seller { get; set; }
public ICollection Departments { get; set; }
}
}
Модель:
using Projeto_Vendedores.Migrations;
namespace Projeto_Vendedores.Models
{
public class Seller
{
public int Id { get; set; }
public string Name { get; set; }
public string Email { get; set; }
public double BaseSalary { get; set; }
public DateTime BirthDate { get; set; }
public Department Department { get; set; }
public int DepartmentId { get; set; }
public ICollection Sales { get; set; } = new List();
public Seller()
{
}
public Seller(int id, string name, string email, double baseSalary, DateTime birhtDate, Department department)
{
Id = id;
Name = name;
Email = email;
BaseSalary = baseSalary;
BirthDate = birhtDate;
Department = department;
}
}
}
Контроллер:
using Microsoft.AspNetCore.Mvc;
using Projeto_Vendedores.Models;
using Projeto_Vendedores.Models.ViewModels;
using Projeto_Vendedores.Services;
namespace Projeto_Vendedores.Controllers
{
public class SellersController : Controller
{
private readonly SellerService _sellerService;
private readonly DepartmentService _departmentService;
public SellersController(SellerService sellerService, DepartmentService departmentService)
{
_sellerService = sellerService;
_departmentService = departmentService;
}
public IActionResult Index()
{
var list = _sellerService.FindAll();
return View(list);
}
public IActionResult Create()
{
var departments = _departmentService.FindAll();
var viewModel = new SellerFormViewModel { Departments = departments };
return View(viewModel);
}
[HttpPost]
[ValidateAntiForgeryToken]
public IActionResult Create(Seller obj)
{
_sellerService.Insert(obj);// it just add to the database and save changes
return RedirectToAction(nameof(Index));
}
}
}
Создать форму (POST):
@model Projeto_Vendedores.Models.ViewModels.SellerFormViewModel
@{
ViewData["Title"] = "Create";
}
@ViewData["Title"]
Seller
Я хочу, чтобы приложение правильно считывало данные, но всякий раз, когда я пытаюсь это сделать, приложение останавливается и показывает исключение, сообщающее, что первое поле записи имеет значение NULL, а также rest.
Исключение:
Microsoft.EntityFrameworkCore.DbUpdateException: произошла ошибка при сохранении изменений сущности. Подробности смотрите во внутреннем исключении.
Внутреннее исключение:
PostgresException: 23502: нулевое значение в столбце «Имя» отношения «Продавец» нарушает ненулевое ограничение
ДЕТАЛИ: Неудачная запись содержит (41, ноль, ноль, 0, 0, -бесконечность).
Исключение возникает в этой строке:
public void Insert(Seller obj)
{
_context.Add(obj);
_context.SaveChanges(); // here
}
Подробнее здесь: https://stackoverflow.com/questions/783 ... e-empty-or