ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

c# – 使用Entity Framework 6 Code First创建SQL视图

2019-06-11 23:56:02  阅读:394  来源: 互联网

标签:c sql-server entity-framework ef-code-first


我是Entity Framework 6 Code First的新手,我正在尝试执行我认为简单的任务.我想创建一个SQL视图,然后在我的数据库上下文中有一个Entity,我可以使用它来查询视图.

我曾尝试过像this这样的文章,但我的情况的主要区别在于SQL View不是来自另一个现有数据库的现有视图.

我检查了this article中提出的命题,但对我来说似乎有点过分,我需要创建一些扩展方法来做一些简单的事情,比如创建一个视图/实体组合并在我的数据库上下文中使用它.

我错过了什么吗?我知道如果我不使用Code First会更容易,但请记住它是Code First,我正在尝试创建一个视图,而不是重用现有数据库中的视图.

解决方法:

科林和凯文,感谢您在另一篇文章中找到答案的链接和简明的答案.我已经使用了几个资源来最终基于新的SQL视图创建可查询实体.为了防止其他人对EF 6.0 Code First不熟悉并且刚刚开始行动,我确实会采取一些措施,希望将来能够让其他人受益.

>对于经验丰富的实体框架开发人员来说,这似乎是显而易见的,但是为了执行“迁移”方法,您需要禁用自动迁移,并实际深入了解Code First Migrations内部工作的内容.由于自动迁移是开箱即用的,我已经使用种子脚本创建了一个相当复杂的数据库,所有这些都依赖于自动迁移并在每次运行我的应用程序时重建数据库. This post帮助我擦除了我的迁移历史,并在关闭自动迁移的情况下进入了方块1(我使用了web.config方法以防万一你想知道)
>在我清除了迁移信息后,我从解决方案资源管理器中删除了mdf.这保证了在运行Update-Database时不会遇到任何问题(在步骤列表的下方).
>在Package Manger控制台中,我然后执行Add-Migration Initial以生成“初始”迁移.结果是Colin的答案中描述的可编辑的Up和Down方法.然后,我通过注释掉表创建语句(实体框架尝试创建一个表但我们真的想要创建一个视图并将其映射到实体)并插入我自己的视图创建sql语句,然后按照科林的答案中的步骤进行操作. Up方法.在创建可能依赖的任何表之后放置create语句非常重要.我还在Configuration.Seed方法中执行了Seed活动,而不是在Context的Seed方法中.我知道如果您处理多个迁移,这将是多么重要.最后,正如Colin建议我将表映射添加到我的上下文的OnModelCreating事件中.
>最后一步是将迁移实际应用于数据库.为此,请在程序包管理器控制台中执行Update-Database命令.该语句将使用您在先前步骤中创建和编辑的“初始”迁移重建数据库.

我仍然感到惊讶的是,我需要完成所有这些自定义工作来创建视图并将其映射到具有Code First的实体,但在一天结束时,它有助于我开始迁移,因为您只能依赖无论如何,“自动迁移”已经很久了.

标签:c,sql-server,entity-framework,ef-code-first
来源: https://codeday.me/bug/20190611/1222018.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有