隐藏EF生成的实体类的某些属性

时间:2015-08-20 13:13:17

标签: entity-framework internal information-hiding

我使用数据库优先EF模型,并使用breezeJs进行客户端数据管理。

我们假设我的数据库中有一个表[User],其中包含一个名为' AccessCode'的字段。我希望通过轻微的方式将User对象公开给客户端,但不希望公开AccessCode属性。据我所知,我有以下选择:

  1. 在EF生成的实体类上创建AccessCode属性 内部。
  2. 创建DTO并忽略AccessCode属性。 DTO是 暴露在客户端。
  3. 第二个选项与breeze不兼容,因为我们应该能够直接从客户端添加/修改User对象。

    第一个选项有什么问题吗?我担心的是,如果我们将属性设置为内部属性,则下次更新模型时将更改此更改。我知道如果我们想要强制执行验证,我们可以使用实体类的部分类,但是我们不能在这里这样做。

    在这里实现数据隐藏的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

当您想隐藏不同图层的数据时,DTO几乎总是正确答案。