Скрытие определенных свойств классов объектов, созданных EF

Я использую модель EF, основанную на базе данных, и использую breezeJ для управления данными на стороне клиента.

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

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

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

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

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

1 ответ

DTO почти всегда являются правильным ответом, если вы хотите скрыть фрагменты данных из разных слоев.

Другие вопросы по тегам