0

我需要在 SQL Server 2008 中为视图创建复合键,因为我无法在没有定义主键的情况下将视图导入实体框架,而且视图没有我必须创建的主键。现在,当我尝试将视图导入 EF 时出现此错误。

表/视图“FanDB.dbo.Quick_View”没有定义主键,也无法推断出有效的主键。此表/视图已被排除。要使用实体,您需要查看架构、添加正确的键并取消注释。

我之前可以将视图添加到 EF,但我的老板删除了我们的数据库,所以我从头开始重新创建数据库。我刚刚忘记了我是怎么做到的说要编辑 XML 文件(不能这样做,因为我不能将它添加到 .edmx)或添加一个我不能做的主键列,因为它是一个快速视图。

4

1 回答 1

1

您可以将视图重新创建为表,添加主键,将其导入 EF,然后删除表并恢复视图。这将使您的表进入 EF,但是以后每次再次更新模型时都必须小心。

或者,您可以创建一个模型数据库,其对象名称与实际数据库相同,但视图创建为表。在设计时使用模型数据库,在运行时使用实际数据库。只要视图是可更新的,EF 运行时就不会关心它实际上是视图,而不是表。

如果您有强迫症,并且有很多表,那么从实际数据库自动生成模型数据库不会太难。

于 2012-09-06T02:25:42.947 回答