Значение false, переведенное как null - Entity Framework - PullRequest
1 голос
/ 27 мая 2020

У меня есть логический столбец в моей базе данных с именем HasEvent с ограничением not-null. Когда я пытаюсь добавить элемент в таблицу через запрос POST, а HasEvent ложно, он преобразуется в null, и я получаю следующую ошибку:

Npg sql .PostgresException (0x80004005) : 23502: пустое значение в столбце «HasEvent» нарушает ограничение на ненулевое значение

Данные отображаются должным образом. Что могло случиться?

PS: Когда я пытаюсь обновить уже созданный элемент и установить для его значения HasEvent значение false с помощью запроса PUT, я не получаю ошибки.

Вот мой код:

Сущность:

public class Period
{
    public long Id { get; set; }
    public DateTime InitialDate { get; set; }
    public DateTime? FinalDate { get; set; }
    public bool HasEvent { get; set; }
}

Контроллер:

[HttpPost]
public ActionResult<Period> Create(Period createPeriod)
{
    if (ModelState.IsValid)
    {
        try
        {
            var period = Service.Post(createPeriod);
            return Created("Created", period);
        }
        catch (Exception e)
        {
            return BadRequest(e);
        }
    }
    return BadRequest();
}

Метод:

public Period Post(Period period)
{
    PeriodsRepository.Create(period);
    return period;
}

РЕДАКТИРОВАТЬ: Репозиторий:

public interface PeriodsRepository<TEntity> : IDisposable where TEntity : class, new()
    {
        IQueryable<TEntity> SelectAll { get; }
        TEntity Select(long key);
        void Create(params TEntity[] obj);
        void Update(params TEntity[] obj);
        void Delete(params TEntity[] obj);
    }
...