ORM开发(1)-EF必杀神器

在这片战场上,如果真的存在能够一击必杀的武器,那么毫无疑问,那么它绝对就是传说中的Entity Framework了,它将ado.ent进行了更深层次的封装,使得数据库开发更加简单,但功能更加强大,它可以使用面向对象的方式来操作数据库中的所有数据。

在此之前我们先简单介绍一下三种常见的ORM模式:

  1. Code First

  2. Model First
  3. Database First

这三种模式各自有各自的运用特点,Code First适用于小型项目,先编程,用测试数据,把类都写好,然后生成数据库,这种方式比较快速,但设计不足,中大型项目一般不建议使用这种方式。

第二个是Model First,适用于一个新项目,连数据库都没有的项目。我们只需要用UML类图或者PDM图画好所有的类型就可以直接用工具生成数据库和代码,非常方便。

第三个就是Database First,这个适用于已经有数据库的项目了,他可以直接用已有数据库生成代码。

我们的Entity Framework可以采用第一种方式和第三种方式,直接从数据库生成代码,而且还进行了巧妙的封装,我们首先采取第一种方式。

如果你使用的是Vs,那么你可以直接用Nuget工具在项目中载入Entity Framework库。或直接使用nuget命令行:

Install-Package EntityFramework

ok,对了,我们还没创建项目呢,这里我是跟着微软的ASP.NET学习向导学习的。所以创建了MVC5项目,我把名称命名为ContosoUniversity,github地址如下:

https://github.com/blackerXHunter/ContosoUniversity

时间: 2024-10-11 03:38:51

ORM开发(1)-EF必杀神器的相关文章

ORM开发(2)-EF必杀神器

我们先从Code First模式出发,我们先创建三个类,来代表学生和课程的关系--Student,Course,Enrollment.有人可能会问,Enrollment是干嘛的?这是我们为了解耦所做的工作,如果我们单纯的让学生拥有多个课程,而一个课程有多个学生报名,那么就会形成多对多的关系,如果我们在其中添加一个中间层,那么则会形成多个一对一关系,从而完成解耦. public class Student { public int ID { get; set; } public string La

【iOS开发-13】大神器:如何利用cocoapods使用第三方类库,以针对UISwitch的第三方类库为例

上一篇笔记以及之前部分笔记里面有些属性设置了没效果,比如UISwitch开关控件的开关背景图片:或者直接没有那种我们想要的属性,比如直接用代码设置控件大小. 所以,我们需要用第三方类库,意思大概是我们不用UISwitch类来实例化一个对象了,而是用第三方的类来实例化一个对象,然后这个对象可以进行各种修改随心所欲. 当然,这里的逻辑就是,我们要导入第三方类库,可能需要把它头文件神马的引入进来,然后就可以实例化,但是如何用第三方类库?cocoapods神器. 安装和使用教程如下:点击这里(相当齐全)

ORM框架之一EF理解性

1.ORM概念 对象关系映射(英语:Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换.从效果上说,它其实是创建了一个可在编程语言里使用的“虚拟对象数据库”. 1.2,概念理解 O(Object) 它是程序设计中的对象,具体说来,也就是在开发过程中,所建立的Model层,在Model层中,每一个类都描述了一个对象,O就当理解为model层 R(Relational ) 它是

ORM框架中EF的作用和特点

存放于System.Linq.QueryAble 静态类中 并且所有的扩展方法扩展自 IqueryAble<TSource>泛型接口上 用途: 接收lambda表达式 利用EF生成对应的sql脚本   发送给ado.net   ado.net会发送给数据库执行

ORM开发(5)-日志和跟踪

为了使日志类更加灵活,我们自己写一个日志接口,自己实现它: public interface ILogger { void Information(string message); void Information(string fmt, params object[] vars); void Information(Exception exception, string fmt, params object[] vars); void Warning(string message); void

ORM开发(4)-分页与配置

我们接着给页面添加分页,在这里,官方范例给我们安利了一个PagedList.Mvc库,我们只需要在nuget包中就可以安装了. Install-package PagedList.Mvc 他的用法也挺简单的,首先引入命名空间: using PagedList; 然后再修改返回值: int pageSize = 3; int pageNumber = (page ?? 1); return View(students.ToList().ToPagedList(pageNumber, pageSiz

lucene开发序之luke神器

lucene是一款很优秀的全文检索的开源库,目前最新的版本是lucene4.4,关于lucene的历史背景以及发展状况,在这里笔者就不多介绍了,如果你真心想学习lucene,想必在这之前你已经对此作过一些了解. 有很多人知道lucene或者solr,但是却有很少人知道luke,在这里笔者就对luke做一个简单的介绍,Luke是一个用于Lucene搜索引擎的,方便开发和诊断的第三方工具,它可以访问现有Lucene的索引,并允许您显示和修改和调试.luke是google公司最早提供的,对于lucen

asp.net core3.1 实战开发(EF+Mysql 从数据库生成实体类到项目)

首先在程序包包管理器控制台 中执行以下语句安装依赖包Install-Package MySql.Data.EntityFrameworkCore -PreInstall-Package Pomelo.EntityFrameworkCore.MySqlInstall-Package Microsoft.EntityFrameworkCore.ToolsInstall-Package Microsoft.VisualStudio.Web.CodeGeneration.Design 在程序包包管理器控

asp.net core3.1 实战开发(EF+Sqlserver 从数据库生成实体类到项目)

首先程序包包管理器控制台安装以下包//Install-Package Microsoft.EntityFrameworkCore. Relationl Install-Package Microsoft.EntityFrameworkCoreInstall-Package Microsoft.EntityFrameworkCore.SqlServerInstall-Package Microsoft.EntityFrameworkCore.ToolsInstall-Package Microso