Скрытие определенных свойств классов объектов, созданных EF
Я использую модель EF, основанную на базе данных, и использую breezeJ для управления данными на стороне клиента.
Допустим, в моей базе данных есть таблица [User] с полем под названием "AccessCode". Я хочу открыть объект User через breeze на стороне клиента, но не хочу предоставлять свойство AccessCode. Насколько я знаю, у меня есть следующие варианты:
- Создайте свойство AccessCode в сгенерированном EF классе сущности Internal.
- Создайте DTO и опустите свойство AccessCode. DTO подвергается воздействию со стороны клиента.
2-й вариант плохо работает с breeze, так как мы должны иметь возможность добавлять / изменять объект User непосредственно со стороны клиента.
Что-то не так с первым вариантом? Меня беспокоит то, что если мы сделаем свойство внутренним, изменение будет удалено при следующем обновлении модели. Я знаю, что если мы хотим применить проверки, мы можем использовать частичные классы с классом сущностей, но мы не можем сделать это здесь.
Каков наилучший способ добиться сокрытия данных здесь?
1 ответ
DTO почти всегда являются правильным ответом, если вы хотите скрыть фрагменты данных из разных слоев.