实体框架数据库第一个SQL视图

时间:2014-04-08 22:46:40

标签: sql-server database entity-framework

我有一个使用直接T-SQL的应用程序,我想使用Entity Framework。问题是所有数据都是从视图中提取的,而这些视图是从多个数据库中提取信息的(即不允许使用SCHEMABINDING)。

当我尝试将视图导入到我的EDMX文件中时,大多数视图都会发出警告,说他们正在推断他们的主键并且是只读的,我很好。然而,他们中的一些错误消息:

  

错误6013:表/视图'[数据库] .dbo。[查看]'没有定义主键,也无法推断出有效的主键。此表/视图已被排除。要使用该实体,您需要检查您的架构,添加正确的密钥并取消注释。

这些视图永远不会进入EDMX文件,因此我无法为VS分配主键。他们提取的数据来自另一个数据库,因此我无法在数据库端分配主键(使用SCHEMABINDING)。

我可以做些什么来强制这些视图加入EDMX文件?

1 个答案:

答案 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>