【问题标题】:Hiding certain properties of EF generated entity classes隐藏 EF 生成的实体类的某些属性
【发布时间】:2015-11-14 03:41:31
【问题描述】:

我使用的是Database-first EF模​​型,并使用breezeJs进行客户端数据管理。

假设我的数据库中有一个表 [User],其中包含一个名为“AccessCode”的字段。我想通过微风向客户端公开 User 对象,但不想公开 AccessCode 属性。据我所知,我有以下选择:

  1. 在 EF 生成的实体类上创建 AccessCode 属性 内部。
  2. 创建一个 DTO 并设置 AccessCode 属性。 DTO 是 暴露给客户端。

第二个选项不适用于微风,因为我们应该能够直接从客户端添加/修改用户对象。

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

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

【问题讨论】:

    标签: entity-framework internal information-hiding


    【解决方案1】:

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

    【讨论】:

    • 第一个选项有什么问题吗?如果我能找到处理模型更新的方法,这似乎很干净。
    • 事实上,每次更新模型时,您都需要执行一个手动步骤。这不是您是否忘记该步骤的问题,而是何时。
    猜你喜欢
    • 2013-01-07
    • 1970-01-01
    • 2020-07-15
    • 1970-01-01
    • 1970-01-01
    • 2010-11-23
    • 1970-01-01
    • 2012-09-01
    • 2010-11-27
    相关资源
    最近更新 更多