【问题标题】:How can I hide a database column in the entity model?如何在实体模型中隐藏数据库列?
【发布时间】:2011-02-20 01:27:23
【问题描述】:

我正在使用 Entity Framework 4 并且有一个问题:

我的数据库中有一个密码列,我想使用自定义 SQL 对其进行管理。所以我不想让模型知道任何事情。

我尝试在“映射详细信息”窗口中删除该属性,但随后出现编译错误:

错误 3023:从第 1660 行开始映射片段时出现问题:必须映射表用户中的列 User.Password:它没有默认值且不可为空。

所以,我使数据库中的列可以为空并更新了模型。现在我得到这个错误:

错误 3004:从第 1660 行开始映射片段时出现问题:没有为 Set Users 中的属性 User.Password、User.Salt 指定映射。 在以下情况下,具有密钥 (PK) 的实体将不会往返: 实体类型为 [UserDirectoryModel.User]

有什么想法吗?

谢谢, 尼克

【问题讨论】:

    标签: entity-framework entity-framework-4 edmx


    【解决方案1】:

    您可以使用 EDMX 设计器中的“属性”窗格将属性标记为私有:在代码生成选项下,它具有 Getter 和 Setter 选项,您可以将它们从 Public 更改为 Private。

    【讨论】:

    • 谢谢。这就是快速解决方案。
    【解决方案2】:

    解决此问题的一种方法是创建一个不包含密码列的用户表视图。然后在模型中使用视图而不是表格。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-13
      • 2017-10-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多