【问题标题】:VIEWs in Entity-Framework?实体框架中的视图?
【发布时间】:2010-01-05 23:51:09
【问题描述】:

我有一个名为 Item 的表。

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

我需要在实体框架中使用它,我不知道我应该如何使用它,因为当在设计器中插入视图时,所有字段都变成实体键,除了没有可用的关系,所以我可以' t 像从基表一样访问相关表作为导航属性。

有没有办法让它们都成为一个类?我还能做什么?

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

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

【问题讨论】:

    标签: sql-server entity-framework views


    【解决方案1】:

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

    Entity Framework: Creating a model using views instead of tables

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

    select field_name from table_name 
    

    select coalesce(field_name,null) field_name from table_name
    

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

    【讨论】:

      【解决方案2】:

      我最终使用了这个扩展程序,它为我解决了所有问题:

      Frustrated by lack of support for SQL-Views in ADO.NET Entity-Framework Designer?

      【讨论】:

        猜你喜欢
        • 2010-11-17
        • 2010-11-04
        • 2015-04-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-04
        相关资源
        最近更新 更多