Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.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/entity-framework/4.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 Server_Entity Framework_Views - Fatal编程技术网

Sql server 实体框架中的视图?

Sql server 实体框架中的视图?,sql-server,entity-framework,views,Sql Server,Entity Framework,Views,我有一张桌子叫Item 我有一个名为ItemView的视图,它返回Item的所有列+另外一个聚合列,我希望这些列是只读的 我需要在实体框架中使用它,我不知道应该如何使用它,因为在设计器中插入视图时,所有字段都成为实体键,而且没有可用的关系,因此我无法从基表访问作为nav属性的相关表 有没有办法把他们两个都变成一个班?我还能做什么 假设我有一个实体项。 保存此项后,我想从视图中检索其计算值,这是如何完成的 我从未在EF中使用过视图,在这些场景中使用的最佳实践是什么? 欢迎提供任何建议、链接、博客、

我有一张桌子叫Item

我有一个名为ItemView的视图,它返回Item的所有列+另外一个聚合列,我希望这些列是只读的

我需要在实体框架中使用它,我不知道应该如何使用它,因为在设计器中插入视图时,所有字段都成为实体键,而且没有可用的关系,因此我无法从基表访问作为nav属性的相关表

有没有办法把他们两个都变成一个班?我还能做什么

假设我有一个实体项。 保存此项后,我想从视图中检索其计算值,这是如何完成的

我从未在EF中使用过视图,在这些场景中使用的最佳实践是什么?

欢迎提供任何建议、链接、博客、文章、笑话。

EF Designer自动将每个非空字段标记为主键的一部分。您必须手动编辑edmx文件并进行更正。当主键设置正确时,您必须自己定义表和视图之间的关系。您应该阅读以下条目:

如果不希望每次更改模型时都更改edmx文件,可以更改视图的定义。如果字段被识别为非空,则可以从以下位置更改视图定义:

select field_name from table_name 


此方式字段未被识别为not null,并且视图中只有主键字段被识别为not null。

我最终使用了此扩展,为我解决了所有问题:

select coalesce(field_name,null) field_name from table_name