2012-12-19 2 views
3

У меня возникли проблемы с проверкой свойств навигации. Я не знаю, если это ошибка или просто не работает, как я ожидал.Проверка свойств навигации, ошибки или функции?

Если у вас есть свойство навигации, требуемое с его внешним ключом (в моем случае int type), успешно добавлен валидатор и, поскольку int не может быть null, ему присваивается значение по умолчанию 0, но когда объект проверяется, поскольку свойство имеет значение (0), задано как правильно. Я ожидал, что объект недействителен.

Это ошибка или правильное поведение?

Приветствия.

ответ

1

Это is Хороший вопрос. Я не думаю, что это ошибка или функция. Я также не рассматривал бы вариант проверки асинхронной проверки.

Вместо этого я бы добавил пользовательскую проверку на FK (или свойство), которая объявила, что свойство FK является недопустимым, когда оно равно 0. Да, это означает, что объект находится в недопустимом состоянии в момент создания. Ничего нельзя сделать по этому поводу. Вы используете «0» в качестве контрольного значения, которое означает «еще не знаю». Подтверждение означает «... и сущность недействительна до тех пор, пока я не узнаю.«

Btw, Бриз не может считать, что 0 недействителен. Это может быть действительный FK для связанного объекта.

Эта проблема не уникальна для FK. У вас есть это при создании нового строкового порядка заказа с «количеством = 0», и ваши бизнес-правила говорят, что он должен быть> 0. Тип требует, чтобы вы указали «ЧТО-ТО», и все же вы не можете предоставить правильный ответ a priori. Опять же, Бриз не может предположить, что «0» является плохим значением. Вы должны указать это.

Ошибок per se в любом случае. Оба требуют дополнительного внимания разработчиков, чтобы «делать правильные вещи».

0

Это хороший вопрос.

Breeze не может фактически проверять внешний ключ самостоятельно, не выполняя обратную пересылку в хранилище данных/базу данных, и если бы это произошло, проверка стала бы асинхронной. В настоящее время ветер не поддерживает асинхронные проверки, но это может быть именно то, что вы хотите в некоторых сценариях.

Есть некоторые проблемы с асинхронными проверками, которые нам нужно будет решить. Самое главное, что еще одна операция, такая как сохранение или запрос или другое изменение поля fk, может произойти до завершения первой проверки. Все они могут быть обработаны, но есть дополнительная сложность.

Если вы считаете, что это было бы полезным дополнением, добавьте его в Breeze UserVoice. Мы серьезно относимся к этим материалам.

+0

Хотя асинхронная проверка кажется хорошей идеей, на самом деле это не то, что мне нужно. Реакция Уорда лучше всего нацелена. –

Смежные вопросы