内容简介:http://stackoverflow.com/questions/17477753/why-use-ef-5-x-dbcontext-generator-when-edmx-does-the-same-job
我发现这个EF 5 dbContext很难掌握.
在VisualStudio 2012中,当我选择
项目>添加新项目> ADO.Net实体数据模型
并选择AdventureWorks数据库文件,它会生成一个edmx文件(请求我在本地复制数据库文件).
现在就可以开始运行查询,例如
AdventureWorks_DataEntities entities = new AdventureWorks_DataEntities var query = from p in entities.Products where p.ListPrice >= 0 select p;
令我困惑的是,为什么我会用这个
Project > Add New Item > EF 5.X DBcontext Generator
是否可以将我的WPF控件绑定到数据库表?但是我的查询正在工作,我不能只绑定到edmx对象,毕竟我可以“看到”已经映射的Product.cs等表.
如果是正确的,那么使用EntityFramework是一个两步的过程
问题Part1:
步骤1:添加从数据库生成的新的edmx文件
步骤2:添加一个新的DbContext,它将自动检测上述edmx文件,并提供一个可绑定控件(如datagrids等)的dbcontext.
问题Part2:
我已经在我的edmx模型中已经看到Product.cs已经从第1步的Product表中映射了,为什么我不能直接绑定我的WPF控件,为什么上面的步骤2是必需的?
谢谢
当您添加新的“ADO .NET实体数据模型”时,除了创建EDMX之外,它还为您创建了DbContext,它是“AdventureWorks_DataEntities”.
所以,你不需要添加一个“EF 5.X DBcontext Generator”,这个项目已经存在了.如果在Visual Studio中单击.edmx文件左侧的箭头展开它,您将看到几个文件.其中两个将以“.tt”结尾.这些是T4模板,负责在修改EDMX时自动生成模型实体和DbContext.
希望澄清概念,直接回答您的问题:
问题1:你只需要第1步,“AdventureWorks_DataEntities”就是你的DbContext.如果您打开“AdventureWorks_DataEntities.cs”文件,您将看到此类继承自DbContext.
问题2:这是一个不同的问题,你应该打开一个单独的问题,询问如何使用实体框架绑定WPF.在这样做之前,建议您首先在线搜索,因为有很多资源可以解释这一点.例如,这个MSDN文章:
http://msdn.microsoft.com/en-us/data/jj574514.aspxhttp://stackoverflow.com/questions/17477753/why-use-ef-5-x-dbcontext-generator-when-edmx-does-the-same-job
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- git的工作上使用
- LiveData基础使用方式+工作原理(上篇)
- golang使用rabbitmq(一)工作队列
- 如何使用Git提高研发团队工作效率
- 使用rebase的Git工作流
- [译] 在 Android 使用协程(part II) - 在实际工作中使用
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。