在对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. IE Cookie文件格式说明
  2. java百度地图添加标注_调取百度地图接口,实现取自己的实时位置,然后可以在百度地图上添加信息标注...
  3. html 图像 ppt,用HTML设置的文本和图像.ppt
  4. android studio viewo,android studio 3.6.0 绑定视图新特性的方法
  5. 【CSAPP笔记】4. 汇编语言——基础知识
  6. Maven_1 安装配置
  7. css - 布局 - rem布局
  8. Android版本历史变迁
  9. 为了机器学习把MacBook Pro换成Asus TUF Gaming 全家桶
  10. 自学SpringBoot二之配置文件--yml格式配置
  11. python创建单行文本框_HTML单行文本框
  12. webrtc中视频采集实现分析(一) 采集及图像处理接口封装
  13. gitlab提交代码到develop分支
  14. sqlserver 登录方式修改,由默认的windows账户改为用sa等sql server账户登录问题
  15. 洛谷千题详解 | P1014 [NOIP1999 普及组] Cantor 表【C++、Java语言】
  16. ffmpeg实例,colorkey,chromakey抠图的使用
  17. 用cocos2d3.0写一个srpg游戏-srpg介绍
  18. SpringBoot(模板Thymeleaf)
  19. 浏览器打开新窗口被拦截问题
  20. 快解析:金蝶云星空远程访问解决方案

热门文章

  1. 什么是加载因子/负载因子/装载因子
  2. Java线程池示例:并行计算200000以内的质数个数
  3. python现在版本强势英雄_当前版本有哪些强势英雄?
  4. 二级list列表python_Python list 列表
  5. 求两数最大公约数,最小公倍数-Java
  6. 【已解决】百度云分享失败
  7. 【已解决】运行Eclipse出错:Failed toload the JNI shared library
  8. Fleury (弗罗莱) 算法通俗解释
  9. ubuntu下Anaconda安装gym包
  10. python3连接sql server数据库_Python3操作SQL Server数据库(实例讲解)