原文链接:https://upimg.baike.so.com/doc/6061191-6274247.html
https://blog.csdn.net/u013733643/article/details/123473628
DOTNET就是.NET, 严格说是:.NET Framework框架 。但为什么叫DOTNET(.NET)呢?在计算机行业DOT是Distributed Object Technology的简称,意为分布式对象技术。DOT恰好与"点"的英语单词相同,DOT的音标[dɔt]。.NET是一个微软开发的编程环境,里面可以使用C#,VB等多种编程语言。
一丶Entity Framework
(一)EF简介
(1)ORM:Object Relation Mapping ,通俗说:用操作对象的方式来操作数据库。
(2)插入数据库不再是执行Insert,而是类似于Person p = new Person();p.Age=3;p.Name=“英莱特”;db.Save§;这样的做法。
(3)ORM工具有很多Dapper、PetaPoco、NHibernate,最首推的还是微软官方的Entity Framework,简称EF。
(4)EF底层仍然是对ADO.Net的封装。EF支持SQLServer、MYSQL、Oracle、Sqlite等所有主流数据库。
(5)使用EF进行数据库开发的时候有两个东西建:建数据库(T_Persons),建模型类(Person)。根据这两种创建的先后顺序有EF的三种创建方法:
DataBase First(数据库优先):先创建数据库表,然后自动生成EDM文件,EDM文件生成模型类。简单展示一下DataBase First 的使用。
Model First(模型优先):先创建Edm文件,Edm文件自动生成模型类和数据库;
Code First(代码优先):程序员自己写模型类,然后自动生成数据库。没有Edm。
DataBase First 简单、方便,但是当项目大了之后会非常痛苦;
Code First 入门门槛高,但是适合于大项目。
Model First……
无论哪种First,一旦创建好了数据库、模型类之后,后面的用法都是一样的。业界都是推荐使用Code First,新版的EF中只支持Code First,因此我们这里只讲Code First。
(6)Code First的微软的推荐用法是程序员只写模型类,数据库由EF 帮我们生成,当修改模型类之后,EF 使用“DB Migration”自动帮我们更改数据库。但是这种做法太激进,不适合很多大项目的开发流程和优化,只适合于项目的初始开发阶段。Java的Hibernate 中也有类似的DDL2SQL 技术,但是也是用的较少。“DB Migration”也不利于理解EF,因此在初学阶段,我们将会禁用“DB Migration”,采用更实际的“手动建数据库和模型类”的方式。
(7)如果大家用过 NHibernate 等ORM 工具的话,会发现开发过程特别麻烦,需要在配置文件中指定模型类属性和数据库字段的对应关系,哪怕名字完全也一样也要手动配置。使用过Java 中Struts、Spring 等技术的同学也有过类似“配置文件地狱”的感觉。 像ASP.Net MVC 一样,EF 也是采用“约定大于配置”这样的框架设计原则,省去了很多配置,能用约定就不要自己配置。
在.Net Framework SP1微软包含一个实体框架(Entity Framework),此框架可以理解成微软的一个ORM产品。用于支持开发人员通过对概念性应用程序模型编程(而不是直接对关系存储架构编程)来创建数据访问应用程序。目标是降低面向数据的应用程序所需的代码量并减轻维护工作。
(二)Entity Framework应用程序有以下优点:
(1)应用程序可以通过更加以应用程序为中心的概念性模型(包括具有继承性、复杂成员和关系的类型)来工作。
(2)应用程序不再对特定的数据引擎或存储架构具有硬编码依赖性。
(3)可以在不更改应用程序代码的情况下更改概念性模型与特定于存储的架构之间的映射。
(4)开发人员可以使用可映射到各种存储架构(可能在不同的数据库管理系统中实现)的一致的应用程序对象模型。
(5)多个概念性模型可以映射到同一个存储架构。
(6)语言集成查询支持可为查询提供针对概念性模型的编译时语法验证。