Это is Хороший вопрос. Я не думаю, что это ошибка или функция. Я также не рассматривал бы вариант проверки асинхронной проверки.
Вместо этого я бы добавил пользовательскую проверку на FK (или свойство), которая объявила, что свойство FK является недопустимым, когда оно равно 0. Да, это означает, что объект находится в недопустимом состоянии в момент создания. Ничего нельзя сделать по этому поводу. Вы используете «0» в качестве контрольного значения, которое означает «еще не знаю». Подтверждение означает «... и сущность недействительна до тех пор, пока я не узнаю.«
Btw, Бриз не может считать, что 0 недействителен. Это может быть действительный FK для связанного объекта.
Эта проблема не уникальна для FK. У вас есть это при создании нового строкового порядка заказа с «количеством = 0», и ваши бизнес-правила говорят, что он должен быть> 0. Тип требует, чтобы вы указали «ЧТО-ТО», и все же вы не можете предоставить правильный ответ a priori. Опять же, Бриз не может предположить, что «0» является плохим значением. Вы должны указать это.
Ошибок per se в любом случае. Оба требуют дополнительного внимания разработчиков, чтобы «делать правильные вещи».
Хотя асинхронная проверка кажется хорошей идеей, на самом деле это не то, что мне нужно. Реакция Уорда лучше всего нацелена. –