我有一个现有的数据库,我想用它来构建一个新的应用程序EF4.0
EF4.0
有些表没有定义主键,因此当我创建新的实体数据模型时,我会收到以下消息:
表/视图 TABLE_NAME 没有定义主键,并且无法推断出有效的主键。此表/视图已被排除。要使用实体,您需要查看架构、添加正确的键并取消注释。
如果我想使用它们并修改数据,我是否必须在这些表中添加一个 PK,或者是否有一种解决方法以便我不必这样做?
错误的意思正是它所说的。
即使您可以解决此问题,相信我,您也不想这样做。可能引入的令人困惑的错误数量令人震惊和可怕,更不用说你的表现可能会下降的事实。
不要解决这个问题。修复您的数据模型。
编辑: 我看到很多人都反对这个问题。我想这很好,但请记住,OP 询问了映射没有主键的 表 ,而不是 view 。答案还是一样的。从可管理性、数据完整性和性能的角度来看,解决 EF 对表进行 PK 的需要是一个坏主意。
一些人评论说他们无法修复底层数据模型,因为它们正在映射到第三方应用程序。这不是一个好主意,因为模型可以从你下面改变。可以说,在这种情况下,您可能希望映射到一个视图,这又不是 OP 所要求的。