我有一个名为 Item 的表。
我有一个名为 ItemView 的 View ,它返回 Item 的所有列 + 一个聚合列,我希望它是只读的。
我需要在 Entity Framework 中使用它,但我不知道应该如何使用它,因为在设计器中插入 View 时,所有字段都变成了实体键,而且没有可用的关系,所以我不能' t 从基表访问相关表作为导航属性。
有没有办法让他们都成为一个类?我还能做什么?
假设我有一个实体项目。 保存这个项目后我想从 View 中检索它的计算值,这是怎么做到的?
我从未在 EF 中使用过 View ,在这些场景中使用的最佳实践应该是什么?
欢迎任何建议、链接、博客、文章、笑话。
最佳答案
EF Designer 自动将每个 NOT NULL 字段标记为主键的一部分。您必须手动编辑 edmx 文件并更正它。正确设置主键后,您必须自己定义表和 View 之间的关系。您应该阅读此条目:
Entity Framework: Creating a model using views instead of tables
如果您不想每次更改模型时都更改 edmx 文件,您可以更改 View 的定义。如果字段被识别为非空,您可以更改 View 定义:
select field_name from table_name
到
select coalesce(field_name,null) field_name from table_name
这种方式字段不被识别为非空,只有 View 中的主键字段被识别为非空。
关于sql-server - Entity Framework 中的 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2010029/