Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 实体框架数据库优先SQL视图_Sql Server_Database_Entity Framework - Fatal编程技术网

Sql server 实体框架数据库优先SQL视图

Sql server 实体框架数据库优先SQL视图,sql-server,database,entity-framework,Sql Server,Database,Entity Framework,我有一个使用直接T-SQL的应用程序,我想使用实体框架。问题是所有数据都是从视图中提取的,而这些视图是从多个数据库中提取信息的(即不允许模式绑定) 当我尝试将视图导入EDMX文件时,大多数视图都有一个警告,表示它们正在推断主键,并且将是只读的,对此我没有意见。但是,其中有几个错误消息: 错误6013:表/视图“[Database].dbo.[view]”未定义主键,无法推断有效的主键。此表/视图已被排除。要使用该实体,您需要检查您的模式,添加正确的键,并取消注释它 这些视图从未进入EDMX文件,

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

当我尝试将视图导入EDMX文件时,大多数视图都有一个警告,表示它们正在推断主键,并且将是只读的,对此我没有意见。但是,其中有几个错误消息:

错误6013:表/视图“[Database].dbo.[view]”未定义主键,无法推断有效的主键。此表/视图已被排除。要使用该实体,您需要检查您的模式,添加正确的键,并取消注释它

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


有关如何将这些视图强制放入EDMX文件的提示?

您可以使用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>

不幸的是,我已经试过了。它产生了许多错误,导致我不仅添加了键,还添加了EntitySet、DefiningQueries和EntitySetMappings。VisualStudio仍然拒绝承认该视图已导入。