8

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

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

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

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

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

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

请问有什么想法吗?

谢谢,尼克

4

2 回答 2

12

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

于 2010-05-17T02:20:51.583 回答
5

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

于 2010-05-16T20:28:38.793 回答