如何隐藏实体模型中的数据库列?

Nic*_*ler 7 entity-framework edmx entity-framework-4

我正在使用实体框架4并有一个问题:

我的数据库中有一个密码列,我想使用自定义SQL进行管理.所以我不希望模型对它有任何了解.

我尝试在Mapping Details窗口中删除该属性,但后来出现了编译错误:

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

因此,我在数据库中使列可以为空并更新了模型.现在我收到这个错误:

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

有什么想法吗?

谢谢,尼克

Ian*_*cer 11

您可以使用EDMX设计器中的"属性"窗格将"属性"标记为"私有":在代码生成选项下,它具有可以从"公共"更改为"私有"的Getter和Setter选项.


Shi*_*iji 5

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