在对EF4有一个大致了解后,我们来看看怎么在实际项目中应用EF4和POCO。

1、打开VS2010,新建一个空的解决方案。

2、添加一个Class Library项目,删掉附带的Class1。

3、Add一个New Folder,比如“DataEntity”,往里添加一个 Entity Data Model : EF4.edmx:

4、选择“Generate from database”,点“next”,在向导帮助下,完成数据库连接的配置:

5、此时,向导会要求提供一个数据库连接串,并可选将它配置在App.config中,如果初次使用向导,点击“New Connection”创建一个新的连接:

6、下一步中,向导为我们反射出当前数据库中的所有表(Tables)、视图(Views)、存储过程和方法(Stored Procedures)。

值得注意的是:存储过程和函数是列在一起的,并且在这个步骤中,可为模型定下命名空间。

7、勾选我们要用到的结构,点击“Finish”进行生成。此时,会进入Entity Data Model的设计视图:

关闭它,在“Solution Explorer”中查看EF4.Designer.cs源代码,我们会发现,此时的模型实体与数据容器是在一起的:

OK,万里长征完成了第一步,此时我们需要用到Entity Framework 4 的模板,才能实现真的POCO与Data Context分离。

8、还在这个Folder中,添加一个“ADO.NET POCO Entity Generator”,点Add,看发生了什么:

是的,产生了两个T4模板,一个是生成DataContext数据容用的,一个是生成POCO模型用的。

有了它们,我们就用不着.edmx自带的.cs文件了,将它删除!.edmx只是我们用来生成的一个依据,使用它的设计视图进行模型的重构。

对于习惯Model和Data分层分离的朋友,鄙人提供这两个模板可供选用:

Entity Framework 4 Model & DataContext T4 Template Download

当然,模板只是个范例,还需视情况进行调整,比如您项目的相对位置,命名空间有所不同,或者您觉得序列化模型不是必须的。

同时,在使用这两个模板进行生成操作前,请确保您在设计器中对Entity Type的“Entity Set Name”和“Name”的命名,符合如下规则:

如果表命名类似这样:CARD_BATCH,单词间以下划线“_”进行分隔,那么词间首字母请大写,Name设置为“CardBatch”,Entity Set Name为Name加上s,即“CardBatchs”

为什么要这样?因为当初我犯了个懒,没有好好去研究生成Name和Entity Set Name通用的方法,久而久之,也就习惯了这么用,是有点麻烦,尤其对于Model经常在变化的项目^ ^ 朋友们如果有更好的方法,请不吝赐教~

这里将两层项目的解决方案放出,希望对您有所帮助:

Entity Framework 4 Poco Solution Sample Download

上一篇:Entity Framework 4 Poco开发之旅 part 1

转载于:https://www.cnblogs.com/moye/archive/2010/10/16/EntityFramework4_Poco2.html

Entity Framework 4 Poco开发之旅 part 2相关推荐

  1. 我的WCF4 Rest Service及Entity Framework with POCO之旅(三)——用Entity Framework和POCO Template实现数据模型及存储...

    既然这个系列标题中都含有Entity Framework和POCO,这两者若到第三篇还不出现那就太奇怪了.本文将介绍如何使用Entity Framework和POCO来实现数据模型的创建以及数据存储. ...

  2. 【步步为营 Entity Framework+Reporting service开发】-(3) 创建commandline 应用程序 ,使用EF导入数据...

    接上一章,我们要创建一个commandline 应用程序,通过输入参数,可以让它去指定目录读取文件,并且导入数据库 [设计] 在编写这个程序之前,我们要想想这个程序都需要做什么? 1.读取comman ...

  3. 案例实作图解.Net Entity Framework 教程

    案例实作图解.Net Entity Framework 教程 可以跟随我操作成功的截图一步步进行实作. 第零章  Entity Framework资源链接和版本 一 资源链接 Microsoft的EF ...

  4. Entity Framework 实体框架的形成之旅--实体框架的开发的几个经验总结

    在前阵子,我对实体框架进行了一定的研究,然后把整个学习的过程开了一个系列,以逐步深入的方式解读实体框架的相关技术,期间每每碰到一些新的问题需要潜入研究.本文继续前面的主题介绍,着重从整体性的来总结一下 ...

  5. Entity Framework技术系列之2:三种开发模式实现数据访问

    前言 Entity Framework支持Database First.Model First和Code Only三种开发模式,各模式的开发流程大相径庭,开发体验完全不一样.三种开发模式各有优缺点,对 ...

  6. ASP.NET Core 开发-Entity Framework (EF) Core 1.0 Database First

    ASP.NET Core 开发-Entity Framework Core 1.0 Database First,ASP.NET Core 1.0 EF Core操作数据库. Entity Frame ...

  7. Entity Framework 实体框架的形成之旅--利用Unity对象依赖注入优化实体框架(2)

    在本系列的第一篇随笔<Entity Framework 实体框架的形成之旅--基于泛型的仓储模式的实体框架(1)>中介绍了Entity Framework 实体框架的一些基础知识,以及构建 ...

  8. AppBox升级进行时 - 拥抱Entity Framework的Code First开发模式

    AppBox 是基于 FineUI 的通用权限管理框架,包括用户管理.职称管理.部门管理.角色管理.角色权限管理等模块. 从Subsonic到Entity Framework Subsonic最早发布 ...

  9. Entity Framework 实体框架的形成之旅--实体数据模型 (EDM)的处理(4)

    在前面几篇关于Entity Framework 实体框架的介绍里面,已经逐步对整个框架进行了一步步的演化,以期达到统一.高效.可重用性等目的,本文继续探讨基于泛型的仓储模式实体框架方面的改进优化,使我 ...

最新文章

  1. 实现一个模拟CMD.exe命令编辑模式执行与显示的Delphi控件
  2. node.js之path模块的使用
  3. Python 库升级问题-module ‘requests.exceptions‘ has no attribute ‘ReadTimeout‘原因及解决办法
  4. Jquery操作复选框总结
  5. python窗口居中_Python: tkinter窗口屏幕居中,设置窗口最大,最小尺寸实例
  6. python编程入门单例_Python单例模式实例详解
  7. rpm | 升级软件包
  8. CallBack函数 回调函数
  9. 21SpringMvc_异步发送表单数据到Bean,并响应JSON文本返回(这篇可能是最重要的一篇了)...
  10. bat实现监测计算机网络连接,断网自动重启网络连接
  11. 阵列信号处理知识点合集
  12. 贷款软件测试经典bug描述,如何描述bug
  13. python PIL 图像增强
  14. matlab 四面体,《有限元基础教程》【MATLAB算例】481基于4节点四面体单元的空间块体分析(Tetrahedron3D4Node)...
  15. 5、提取snp indel 位点
  16. Three.js加载.obj和.mtl文件(无法加载材质、路径错误问题)
  17. 2020年精彩文章回顾
  18. 【C++】string容器
  19. 如何在mac下查看JDK文档(附jdk1.8中文文档下载地址)
  20. 室外低速自动导航车的设计(2)——多线激光雷达的点云解析

热门文章

  1. Linux安装gcc
  2. 关闭输入流后,依然无法删除文件
  3. 【异或交换原理】按位进行异或操作,实现数的交换
  4. 一文搞定JS事件基础与进阶
  5. linux下的shell编程
  6. python排行_如何看待Python排名超越C++?
  7. Snuke Festival(二分法)
  8. 操作系统(概述、组成)、用户态、内核态
  9. malloc 两种实现方式:brk 和 mmap
  10. java 条件变量_Windows下条件变量的实现