Внимательно посмотрите на класс UserDetailDTO и любые другие классы, которые могут иметь внешние ключи к этой таблице в вашей базе данных. Недавно мы обнаружили, что эта ошибка вызвана добавлением аннотации [Обязательные] к нашим сущностям. В приведенном ниже примере атрибут [Required] над FirstName является обязательным, и в вашей таблице не должно быть строк, в которых этот столбец равен нулю.
namespace Entities
{
public class UserDetailDTO
{
public int Id { get; set; }
[Required]
public string FirstName { get; set; }
public string LastName { get; set; }
public string PhoneNumber { get; set; }
public string EmailAddress { get; set; }
}
}
В предыдущих версиях EF Core аннотация данных [Обязательно] игнорировалась. Версия 2.2.1 начала искать эти аннотации в ваших сущностях и применять их. Мы понятия не имели, что это было ошибочно добавлено к некоторым из наших организаций несколько месяцев назад, пока мы не обновили нашу версию EF Core и не начали испытывать эту ошибку. Поскольку в нашем случае аннотация была добавлена некорректно, удаление аннотации решило нашу проблему. Если вы обнаружите, что это является причиной вашей проблемы, и вы действительно хотите, чтобы столбец был обязательным, то у вас, вероятно, есть данные в вашей таблице, где этот столбец равен нулю, что и является причиной ошибки. Исправьте эти неверные данные, сделайте этот столбец не нулевым, и запрос должен снова заработать.