如何使用databasefirst和实体框架生成视图?

柯比

我得到了一个Visual Studio解决方案,可以重新启动并运行以进行开发。该项目首先使用Entity Framework数据库。当我从数据库生成模型时,SQL希望将所有视图转换为表。我知道使用EF应该避免使用视图,但是鉴于开发人员不再为我们工作,解决此问题的最佳方法是什么?

谢谢

柯比

我得出的结论是,没有办法将edmx中的视图实体重新创建回实际的sql server数据库视图。需要发生的是,您将从模型中生成sql并在sql server management studio查询分析器中运行该sql。删除创建的本应为视图的表,并找出要写入的查询以按原样在sql server中重新创建视图。一旦完成,运行“从数据库更新”后,模型中的视图应该很好,并在那里进行更新。

假设您有两个表格-类别和产品。您要创建一个名为ProductsWithCategoryName的视图。当您从数据库进行更新并且此视图被添加到您的EDMX文件中时,查看XML将显示以下内容:

    <EntitySet Name="ProductsWithCategoryName" EntityType="NorthwindModel.Store.ProductsWithCategoryName" store:Type="Views" store:Schema="dbo" store:Name="ProductsWithCategoryName">
  <DefiningQuery>
      SELECT
      [ProductsWithCategoryName].[ProductID] AS [ProductID],
      [ProductsWithCategoryName].[ProductName] AS [ProductName],
      [ProductsWithCategoryName].[UnitsInStock] AS [UnitsInStock],
      [ProductsWithCategoryName].[CategoryName] AS [CategoryName]
      FROM [dbo].[ProductsWithCategoryName] AS [ProductsWithCategoryName]
  </DefiningQuery>
</EntitySet>

上面的问题是,定义查询不是创建该视图的查询。为了获得正确的定义查询,您必须通过手动向其添加适当的查询来实际编辑EDMX文件,如下所示:

<EntitySet Name="ProductsWithCategoryName" EntityType="NorthwindModel.Store.ProductsWithCategoryName" store:Type="Views" store:Schema="dbo" store:Name="ProductsWithCategoryName">
  <DefiningQuery>
      SELECT        dbo.Products.ProductID, dbo.Products.ProductName, dbo.Products.UnitsInStock, dbo.Categories.CategoryName
      FROM            dbo.Categories INNER JOIN
      dbo.Products ON dbo.Categories.CategoryID = dbo.Products.CategoryID
  </DefiningQuery>
</EntitySet>

这仍然不能为您提供创建适当的sql视图的预期结果。从概念到数据库,基本上EF仅针对每个实体生成一张表,而视图仅被视为另一个实体。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

实体框架和视图

来自分类Dev

如何使用实体框架和视图模型显示交叉引用值

来自分类Dev

如何在 db first 实体框架中使用视图

来自分类Dev

如何使用实体框架从数据库视图加载相关实体?

来自分类Dev

实体框架自动代码生成和验证

来自分类Dev

如何使用LINQ和实体框架6进行表联接?

来自分类Dev

如何在实体框架和Mysql中使用规范函数

来自分类Dev

如何使用实体框架扩展BulkInsert和AllowDuplicateKeys

来自分类Dev

如何使用实体框架定义日期和时间

来自分类Dev

如何在vNext MVC中使用实体框架和OData

来自分类Dev

如何使用LINQ和实体框架6进行表联接?

来自分类Dev

使用多个 OR 语句生成实体框架查询

来自分类Dev

如何从 ABP 框架中的实体框架创建视图(SQL)

来自分类Dev

使用实体框架保存大型实体和子实体

来自分类Dev

使用实体框架保存大型实体和子实体

来自分类Dev

实体框架-视图与表

来自分类Dev

如何使用我使用实体框架创建的自动生成的类查询一对多关系?

来自分类Dev

结合使用MariaDB和实体框架

来自分类Dev

使用实体框架6和SQLite的问题

来自分类Dev

使用实体框架和MSSQL AVG()函数

来自分类Dev

使用实体框架和 WebApi 计算属性

来自分类Dev

如何配置实体框架以允许PostgreSQL(npgsql)使用数据库生成的uuid?

来自分类Dev

如何使用实体框架数据库首先自动生成的代码中的接口

来自分类Dev

如何使用带有剃刀视图的实体框架(.edmx模型)为MVC4或MVC 5创建局部视图?

来自分类Dev

如何使用实体框架和UnitOfWork和存储库模式支持全文本搜索

来自分类Dev

实体框架-Distinct和Max生成巨大(且缓慢)的查询

来自分类Dev

使用Moq,NUnit和实体框架重新加载保存的实体

来自分类Dev

使用linq和相关实体查询实体框架7

来自分类Dev

使用Moq,NUnit和实体框架重新加载保存的实体

Related 相关文章

  1. 1

    实体框架和视图

  2. 2

    如何使用实体框架和视图模型显示交叉引用值

  3. 3

    如何在 db first 实体框架中使用视图

  4. 4

    如何使用实体框架从数据库视图加载相关实体?

  5. 5

    实体框架自动代码生成和验证

  6. 6

    如何使用LINQ和实体框架6进行表联接?

  7. 7

    如何在实体框架和Mysql中使用规范函数

  8. 8

    如何使用实体框架扩展BulkInsert和AllowDuplicateKeys

  9. 9

    如何使用实体框架定义日期和时间

  10. 10

    如何在vNext MVC中使用实体框架和OData

  11. 11

    如何使用LINQ和实体框架6进行表联接?

  12. 12

    使用多个 OR 语句生成实体框架查询

  13. 13

    如何从 ABP 框架中的实体框架创建视图(SQL)

  14. 14

    使用实体框架保存大型实体和子实体

  15. 15

    使用实体框架保存大型实体和子实体

  16. 16

    实体框架-视图与表

  17. 17

    如何使用我使用实体框架创建的自动生成的类查询一对多关系?

  18. 18

    结合使用MariaDB和实体框架

  19. 19

    使用实体框架6和SQLite的问题

  20. 20

    使用实体框架和MSSQL AVG()函数

  21. 21

    使用实体框架和 WebApi 计算属性

  22. 22

    如何配置实体框架以允许PostgreSQL(npgsql)使用数据库生成的uuid?

  23. 23

    如何使用实体框架数据库首先自动生成的代码中的接口

  24. 24

    如何使用带有剃刀视图的实体框架(.edmx模型)为MVC4或MVC 5创建局部视图?

  25. 25

    如何使用实体框架和UnitOfWork和存储库模式支持全文本搜索

  26. 26

    实体框架-Distinct和Max生成巨大(且缓慢)的查询

  27. 27

    使用Moq,NUnit和实体框架重新加载保存的实体

  28. 28

    使用linq和相关实体查询实体框架7

  29. 29

    使用Moq,NUnit和实体框架重新加载保存的实体

热门标签

归档