我有一个使用直接T-SQL的应用程序,我想使用Entity Framework。问题是所有数据都是从视图中提取的,而这些视图是从多个数据库中提取信息的(即不允许使用SCHEMABINDING)。
当我尝试将视图导入到我的EDMX文件中时,大多数视图都会发出警告,说他们正在推断他们的主键并且是只读的,我很好。然而,他们中的一些错误消息:
错误6013:表/视图'[数据库] .dbo。[查看]'没有定义主键,也无法推断出有效的主键。此表/视图已被排除。要使用该实体,您需要检查您的架构,添加正确的密钥并取消注释。
这些视图永远不会进入EDMX文件,因此我无法为VS分配主键。他们提取的数据来自另一个数据库,因此我无法在数据库端分配主键(使用SCHEMABINDING)。
我可以做些什么来强制这些视图加入EDMX文件?
答案 0 :(得分:0)
您可以使用XML编辑器打开edmx文件,并添加像这样的键
<Key>
<PropertyRef Name="ColumnName1" />
<PropertyRef Name="ColumnName2" />
</Key>
整个事情应该是这样的:
<EntityType Name="ViewName">
<Key>
<PropertyRef Name="ColumnName1" />
<PropertyRef Name="ColumnName2" />
</Key>
<Property Type="String" Name="ColumnName1" />
<Property Type="String" Name="ColumnName2" />
<Property Type="String" Name="ColumnName3" />
</EntityType>