2015-08-20 7 views
0

Я использую первую EF-модель базы данных и использую breezeJs для управления данными на стороне клиента.Скрытие определенных свойств классов создаваемых объектов EF

Предположим, у меня есть таблица [User] в моей базе данных с полем «AccessCode». Я хочу, чтобы объект User был передан на клиентский интерфейс, но не хочу раскрывать свойство AccessCode. Насколько я знаю, у меня есть следующие варианты:

  1. Сделайте свойство AccessCode на EF сгенерированного класса сущностей внутреннего.
  2. Создайте DTO и омнитете свойство AccessCode. DTO - , выставленный на стороне клиента.

2-й вариант не работает с бризом, так как мы должны иметь возможность добавлять/изменять объект User непосредственно с клиентов.

Есть ли что-то не так с первым вариантом? Меня беспокоит, что если мы сделаем свойство внутренним, это изменение будет уничтожено при следующей модификации модели. Я знаю, если мы хотим обеспечить проверку, мы можем использовать частичные классы с классом сущности, но мы не можем этого сделать здесь.

Что было бы лучшим способом добиться скрытия данных здесь?

ответ

0

DTO - это почти всегда правильный ответ, когда вы хотите скрыть кусочки данных из разных слоев.

+0

Есть ли что-то не так с первым вариантом? Это кажется довольно чистым, если я могу найти способ обработки обновлений модели. – devC

+0

Дело в том, что у вас будет ручной шаг, который вам нужно делать каждый раз, когда вы обновляете свою модель. Это не вопрос, если вы забудете этот шаг, но КОГДА. – cadrell0