在 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。
分享到:
相关推荐
在本节中,我们将探讨如何使用Symfony框架中的命令行工具创建和管理数据库表,特别是如何根据Entity类生成数据迁移。Symfony是一个流行的PHP框架,它提供了一种基于注解的方式来定义数据库模型,使得开发者能更方便...
4. 生成模型:使用“代码优先”或“数据库优先”的方法。前者是根据C#或VB.NET类生成数据库,后者是从现有SQLite数据库生成数据模型。 5. 定义实体:在模型设计器中,可以拖放表格,定义实体和它们的关系。 6. 操作...
实体代码生成器是一种高效开发工具,它极大地简化了软件开发者的工作流程,特别是在处理与数据库交互的业务逻辑时。这款特定的“实体代码生成器(多数据库支持)”支持多个主流的数据库系统,包括Microsoft SQL Server...
4. **Entity SQL**:这是EF提供的一种SQL方言,用于在EF上下文中执行查询,可以避免直接编写SQL,保持代码与数据库的解耦。 5. **ADO.NET Entity Data Model Designer (EDM Designer)**:这是一个可视化工具,帮助...
4. **SQL查询与存储过程**:源代码可能包含直接的SQL查询语句,如SELECT、INSERT、UPDATE和DELETE,或者调用数据库中的存储过程来执行更复杂的逻辑。 5. **ASP.NET Web Forms和MVC**:这两种是ASP.NET的主要开发...
如何使用C#中EntityFrameworkCore读写Mysql数据库 https://blog.csdn.net/gs1069405343/article/details/114211697
本文将深入探讨三种常见的.NET框架下的数据库访问技术:ADO.NET SQL、LINQ to SQL以及ADO.NET Entity Framework(EF),并重点分析它们在数据库连接性能上的差异,特别是在插入和读取操作,包括模糊检索方面的表现。...
1、本地执行代码生成工具,可生成controller、service、repository、entity、mapper、mapper.xml的增删改查代码。生成的文件复制到项目路径中,修修改改即可实现大部分CRUD功能。 2、工具不需要导入到项目中,本地...
2. **数据库优先(Database First)和模型优先(Model First)**:尽管代码优先是主流,但EF 6.0仍然支持这两种方式,让开发者可以根据现有的数据库或ER图创建模型。 3. **自动迁移(Automatic Migrations)**:在...
"EF代码优先"、"模型优先"和"数据库优先"是三种主要的工作流,每种都有其独特的优点和适用场景。以下是对这三种策略的详细说明。 首先,"代码优先"(Code First)是EF开发中的主流方法,尤其是在敏捷开发环境中。它...
总的来说,这个工具或框架提供了一种高效的方式来管理与数据库交互的代码,特别是在大型项目中,当数据库表数量庞大时,能够显著提升开发效率。它结合了Oracle数据库的强大功能和代码自动生成的优势,为开发者提供了...
数据库代码自动生成是一种提高开发效率的有效方法,它能够帮助开发者快速构建基于数据库的业务系统,减少手动编写重复性代码的时间。在本主题中,我们将深入探讨这个过程,重点关注"实体类"、"DataAccessAuto"和...
总的来说,这个工具提供了一种高效的方式,将数据库设计转化为可运行的Java代码,极大地简化了开发流程,降低了出错的可能性。在大型项目中,这样的自动化工具尤其重要,它们可以帮助团队保持代码的一致性和整洁性,...
在MySQL中,批处理可能需要特殊处理,因为两种数据库的语法和批处理机制有所不同。这个类可能实现了与MySQL数据库交互时的批处理逻辑,包括但不限于SQL命令的构建、执行和错误处理。 `MySqlMetadataMappingProvider...
1. **数据库连接**: 在C#中,我们通常使用ADO.NET库来连接和操作数据库。`SqlConnection`类用于建立到SQL Server数据库的连接,而`ConnectionStrings`在`web.config`或`app.config`文件中配置,以安全地存储连接信息...
在开发过程中,为了提高效率,通常会使用代码生成器来自动化创建数据库实体类和通用业务逻辑代码。"简答Postgresql数据库代码生成器"正是这样一种工具,它能够帮助开发者快速构建与PostgreSQL数据库交互的Java应用。...
同样,查询、更新和删除操作也可以通过类似的方式实现。 对于这个小项目,可能还包括用户界面部分,比如Windows Forms或WPF,用于显示日记列表、添加新条目或编辑已有条目。开发者可以利用MVVM(Model-View-...