EF Core ModelState.IsValid Всегда возвращает False, поскольку свойство навигации имеет значение nullC#

Место общения программистов C#
Ответить
Anonymous
 EF Core ModelState.IsValid Всегда возвращает False, поскольку свойство навигации имеет значение null

Сообщение Anonymous »

Здесь 2 модели

Код: Выделить всё

public class Company
{
[Key]
public int Id { get; set; }
[Required]
[MaxLength(100)]
public string Name { get; set; }
[Required]
[MaxLength(50)]

public string Country { get; set; }
[Required]
[MaxLength(50)]
public string Type { get; set; } = "Client";
public DateTime CreatedDateTime { get; set; } = DateTime.Now;
public List
 Products { get; set; }
}

public class Product
{
[Key]
public int Id { get; set; }
[Required]
[StringLength(25)]
public string ProductCode { get; set; }

[Required]
[StringLength(25)]
public string ProductType { get; set; }
[StringLength(25)]
public string MarketArea { get; set; }
[Required]
public int CompanyId { get; set; }
public string? ReferenceCode { get; set; }
public string? SpecialStructure { get; set; }
[StringLength(255)]

public string? Note { get; set; }
[Required]
public DateTime CreateDate { get; set; } = DateTime.Now;

public virtual Company Company { get; set; }

}
Как вы можете видеть, свойство Company является свойством навигации для EF Core.
но когда я отправляю форму для создания продукта, ModelState.IsValid всегда возвращает False. и причина в том, что свойство навигации «Компания» имеет значение null.
Изображение
на данный момент я могу установить свойство навигации как свойство, допускающее значение NULL, чтобы решить эту проблему.

Код: Выделить всё

public virtual Company? Company { get; set; }
но есть ли другое решение этой проблемы?
спасибо.
Когда я устанавливаю свойство проекта отключить
или добавить #nullable отключить в верхней части файла модели.
Свойство навигации «Компания» больше не включается в ModelState.
Изображение


Подробнее здесь: https://stackoverflow.com/questions/715 ... roperty-is
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»