sql-server - Entity Framework 中的 View ?

标签 sql-server entity-framework views

我有一个名为 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/

相关文章:

sql - 使用 Microsoft SQL Server 获取列的 10 个最高升序值

sql-server - 不在域中时使用 Windows 凭据通过 Management Studio 连接到 SQL Server

oracle - 如何为 oracle 数据库 View 创建注释

SQL Server 相当于 PostgreSQL 的 unique on ()

sql-server - 无法使用 key 存储提供程序解密列加密 key : 'AZURE_KEY_VAULT'

entity-framework - 实体类型 <classname> 不是当前上下文模型的一部分

postgresql - PostgreSQL Entity Framework 上的 RowVersion 实现

entity-framework - 发出加载父实体的子实体。单向映射和 1 到 0..1 与共享主键的关系?

sql - 展平包含引用 SQL Server 2005 中其他行的行的表

python - 基于类的 View 扩展 UpdateView 未正确保存表单