在 Entity Frame Work (后面直接简称其为EF) 中,支持两种方式创建,一种是数据库优先,另外一种是代码优先;
EF是微软推出的一个ORM框架,而在这之前,Java早就有非常成熟的ORM框架了,比如Hibernate(当然,人家也有.NET版本的,叫NHibernate,多了个N),我这次只谈EF,NHibernate下次有时间再讲;
先讲数据库优先吧,数据库优先指的是先创建数据库,包括表和字段的建立,然后根据数据库生成ORM的代码,它是先创建数据库,再创建相关程序代码;
下面,我来看看如何具体操作。
首先,我们在一个数据库中创建一个数据库,和一些表,如下图:
新建一个“Asp.NET MVC 2 空 Web 应用程序”,项目名称为“RoRoWoDataFirst”,如下图:
创建项目后,VS2010会根据MVC 2,自动创建好一个目录结构和基本的文件资源,如下图:
现在我们为这个项目创建一个数据库优先的ORM模型,在项目中点鼠标右键,进入“添加”-->“新建项”,在弹出的对话框中选择“数据”,然后创建一个“ADO.NET 实体数据模型”,如下图:
它会默认创建一个Model1.edmx的文件,然后进入下一步,会让你选择是从数据库生成还是从概念设计模型中生成,这里我们选择数据库生成,(注:概念设计模型是在VS2010中使用工具箱设计出来的,是我们后面要讲的代码优先方式),我们点击下一步,然后会让我们选择数据库连接,如果还没有建过数据库连接,旁边会有个新建连接,点击按钮,新建一个就可以了,这里我的连接信息如下图:
选择在连接字符串中包含敏感数据。
勾选要生成的表和视图。
创建成功后的实体对象模型图。
创建好了,我们如何使用呢,我们创建一个Default控制器,然后代码如下:
代码
<!--<br/ />
<br/ />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />
http://www.CodeHighlighter.com/<br/ />
<br/ />
-->using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using RoRoWoDataFirst.Models;
namespace RoRoWoDataFirst.Controllers
{
public class DefaultController : Controller
{
//
// GET: /Default/
public ActionResult Index()
{
//使用ORM实体框架的上下文对象
RoRoWoDBEntities context = new RoRoWoDBEntities();
BlogCategory model = new BlogCategory();
model.CateName="第一个分类";
model.CreateTime=DateTime.Now;
//新增一个分类到数据库
context.AddToBlogCategory(model);
context.SaveChanges();
return View();
}
}
}
是不是感觉非常方便,非常强大呢?用过Hibernate的朋友,是不是觉得非常容易上手呢?
下一次,我将谈谈如何代码优先的方式创建一个ORM。
分享到:
相关推荐
entity frame work 4 很好的学习资源
entity frame work 2nd 非常好的学习资源
1、本地执行代码生成工具,可生成controller、service、repository、entity、mapper、mapper.xml的增删改查代码。生成的文件复制到项目路径中,修修改改即可实现大部分CRUD功能。 2、工具不需要导入到项目中,本地...
如何使用C#中EntityFrameworkCore读写Mysql数据库 https://blog.csdn.net/gs1069405343/article/details/114211697
在命令的最后它会提示我们创建个数据迁移,当我们使make:migration命令时,Symfony会查看我们所有的entity类,然后读取注解,再和数据库中对应
使用Entity_Framework_4进行代码优先开发.
数据ADO.NET sql、LINQ to sql、ADO.NET Entity Framework(EF)数据库连接性能比较,主要比较了插入与读取的时间,读取里可以进行模糊检索
首先介绍一下Entity Framework(个人使用的方式,我没有深入研究),Entity Framework后面简称EF,EF对象关系解决方案,让程序设计者专心于程序设计,不用花时间去研究SQL语句。那么EF是怎么创建数据库,怎么和数据库...
演示使用EntityFramework操作SQLite数据库的记录日记的小项目。压缩包中有项目中要使用的开发环境和数据库程序。
Asp.net core2.2利用Entity Framework Core连接Mysql数据库,进行写入数据库操作
3、如果要使用EntityFramework还需要JetEntityFrameworkProvider,这是第三方github提供的软件,在NuGet上也提供了,不过它仅支持32位的,如果想要使用64位的,可以下载源码重新编译dll。 4、上面说的accessdatabase...
entityframework框架源代码,需要深入了解entityframework的同学可以下载深入学习研究
Entity Framework 6以模型方式搭建Sqlite数据库环境 Visual studio 2010 .net40 完成CURD 未处理 System.Configuration.ConfigurationErrorsException Message=找不到或无法加载已注册的 .Net Framework Data ...
自动生成数据库表的实体类,DataAccessAuto,Business,Entity
获得更好的模型优先和数据库优先支持,并轻松将模型更改应用于数据库。 LinqConnect 积极支持Devart的LINQ to SQL兼容ORM以及更多功能,Entity Developer作为其ORM设计器。 Telerik数据访问 可视化设计最新Telerik...
Volo.Abp.Entity...通过引用dll的方式来实现,主要用的两个dll,分别在这个两个文件中需要找到对应的版本,因为我是用的net6.0所以找的net6.0对应的版本 在使用 DbContextFactory中进行配置 参数 使用说明文件
数据库 概念 概念 数据库考试用的实体(entity): 实体集(entity set) 实体型(Entity Type 属性(attribute)
根据数据库快速生成 dao - entity - service - controller - jsp 代码
电子书 Entity Framework 4 In Action
代码自动生成_连接数据库生成entity(可自定义)_oracle