• Entity Framework


    EntityFramework(EF)

       刚刚开始学习EntityFramework。

       看到一篇文章,感觉不错,这是原始链接http://www.cnblogs.com/mecity/archive/2011/07/07/2099598.html#!comments

       以下是个人整理后的文章

    EDM文件

        EDM是实体数据关系映射的XML文件,不同于Nhibernate每个对象单独映射一个XML文件。

        三部分:

                 CSDL:表示实体数据模型结构

                 SSDL:表示对应的数据存储的架构

                 MSL:   CSDL实体与SSDL数据结构的关系通过MSL映射实现。

         生成方式:

                  通过ADO.NET实体数据模型生成

                  1.基于数据库(DataBase First)

                  2.创建空EDM模型(Model First)

        

          基于EDM模型生成代码的方式

                   1.ADO.NET实体数据模型    最初EF的方式,实体模型EntityObeject与ObjectContext耦合在一起,不适合分层使用

                   2.ADO.NET自跟踪实体生成器   分离生成基于POCO的SelfTrackingEntityObject模型和ObjectContext(这种方式即使设置了延迟加载,也无法加载关联导航属性,要在使用时手动加载)

                   3.ADO.NET DbContext Generator 分离生成纯POCO模型和轻型DbContext。DbContext较之ObjectContext比较简洁,且POCO可以充分利用。

           现在我们所用的就是第三种。

          

           EF框架有三种开发模式:

                    1. DataBase First(数据库优先)

                    2. Model First(模型优先)

                    3. Code First(代码优先)

            DataBase First   

                 传统的表驱动方式创建edm,然后通过edm生成模型和数据层代码。除生成实体模型和自跟踪实现模型,还支持生成纯POCO模型和轻型DbContext。

                 在设计器中逆向生成Model,并有Model自动生成所有类。

           Model First 

                 先创建EDM模型,再生成DDL数据库脚本和模型、数据层代码。除生成实体模型和自跟踪实体模型,支持生成POCO模型和轻型DbContext。

                 在设计器中创建Model,并用Model生成数据库。所有的类由Model自动生成。

            Code First

                 手动创建POCO模型,数据层DbContext及映射关系,通过DataBase.SetInitializer生成数据库,方式灵活,但代码工作较多。

                 CodeFirst也可以分为两种

                      Code First(New DataBase): 在代码中定义类和映射关系并通过model生成数据,使用迁移技术更新数据库。

                      Code First(Existing DataBase): 在代码中定义类和映射关系,给逆向工程提供工具 

             

    无论走的多远,都应该时常回过头看看。之所以写这个博客,主要的原因是为了记录自己的成长痕迹和所学到的技术,以便于日后的反思。
  • 相关阅读:
    SVN: repository browser 库浏览器
    创业泡沫真他妈的大出血来了 --个人需要创业以谋生,行业需要创业以求变,国家需要创业以维稳
    判断输入的是否是大于0的正整数
    linux开放或限制端口和ip访问
    linux模糊删除es索引脚本
    ssh免密登录
    DES加密解密
    SpringBoot 单元测试
    SpringContextHolder 工具类
    fiddler抓包 443 请求不到数据
  • 原文地址:https://www.cnblogs.com/FredWang/p/4226754.html
Copyright © 2020-2023  润新知