实体框架中的视图?

Shi*_*mmy 3 sql-server entity-framework views

我有一个名为Item的表.

我有一个名为ItemView的视图,它返回Item的所有列+另一个聚合列,我想要只读.

我需要在Entity Framework中使用它,我不知道应该如何使用它,因为在设计器中插入视图时,所有字段都成为实体键,除了没有可用的关系,所以我无法访问相关表作为基本表中的nav-properties.

有没有办法让他们成为一个班级?我还可以做些什么?

假设我有一个实体项目.保存此项后,我想从视图中检索其计算值,这是怎么做到的?

我从未在EF中使用过视图,在这些场景中使用的最佳实践应该是什么?
任何建议,链接,博客,文章,笑话都很受欢迎.

Luk*_*Led 5

EF Designer会自动将每个NOT NULL字段标记为主键的一部分.您必须手动编辑edmx文件并进行更正.正确设置主键后,您必须自己定义表和视图之间的关系.你应该读这个条目:

实体框架:使用视图而不是表创建模型

如果您不想在每次更改模型时更改edmx文件,则可以更改视图的定义.如果字段被识别为非null,则可以从以下位置更改视图定义:

select field_name from table_name 
Run Code Online (Sandbox Code Playgroud)

select coalesce(field_name,null) field_name from table_name
Run Code Online (Sandbox Code Playgroud)

这种方式字段不被识别为非空,并且只有视图中的主键字段被识别为非空.