• Entity Framework 4 Poco开发之旅 part 2


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

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

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

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

    添加Data Entity Model

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

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

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

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

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

    Entity Framework Data Model设计视图

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

    Entity Framework 4生成代码

    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”

    EF4容器与模型分离的场景

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

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

    Entity Framework 4 Poco Solution Sample Download

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

  • 相关阅读:
    HTML3 / 4 / 4.1 / 5 版本升级过程中,变化是怎么样的
    HTML head内所有标签,及其作用
    HTML 和 XHTML和区别
    HTML DOCTYPE 都有哪些,它们之前的区别和用途分别是什么?
    eclipse中英文切换--四种方式
    Eclipse Class Decompiler---Java反编译插件
    jdk历史版本下载
    eclipse优化(部分)
    博客迁移到github
    JavaScript:同步、异步和事件循环
  • 原文地址:https://www.cnblogs.com/moye/p/EntityFramework4_Poco2.html
Copyright © 2020-2023  润新知