我也来说说Entity Frame Work 4中的数据库优先和代码优先两种方式(1)

简介:

在 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控制器,然后代码如下:

 

ExpandedBlockStart.gif 代码
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。

 




本文转自远哥博客园博客,原文链接:http://www.cnblogs.com/taven/archive/2010/09/05/1818596.html,如需转载请自行联系原作者

相关文章
|
2天前
|
SQL 关系型数据库 MySQL
创建SQL数据库的基本步骤与代码指南
在信息时代,数据管理显得尤为重要,其中数据库系统已成为信息技术架构的关键部分。而当我们谈论数据库系统时,SQL(结构化查询语言)无疑是其中最核心的工具之一。本文将详细介绍如何使用SQL创建数据库,包括编写相应的代码和必要的步骤。由于篇幅限制,本文可能无法达到您要求的2000字长度,但会尽量涵盖创建数
12 3
|
6天前
|
安全 算法 Java
数据库信息/密码加盐加密 —— Java代码手写+集成两种方式,手把手教学!保证能用!
本文提供了在数据库中对密码等敏感信息进行加盐加密的详细教程,包括手写MD5加密算法和使用Spring Security的BCryptPasswordEncoder进行加密,并强调了使用BCryptPasswordEncoder时需要注意的Spring Security配置问题。
35 0
数据库信息/密码加盐加密 —— Java代码手写+集成两种方式,手把手教学!保证能用!
|
1月前
|
SQL NoSQL Java
彻底革新你的数据库操作体验!Micronaut数据访问技巧让你瞬间爱上代码编写!
【9月更文挑战第10天】Java开发者们一直在寻找简化应用程序与数据库交互的方法。Micronaut作为一个现代框架,提供了多种工具和特性来提升数据访问效率。本文介绍如何使用Micronaut简化数据库操作,并提供具体示例代码。Micronaut支持JPA/Hibernate、SQL及NoSQL(如MongoDB),简化配置并无缝集成。通过定义带有`@Repository`注解的接口,可以实现Spring Data风格的命名查询。
50 6
|
1月前
|
前端开发 数据库
数据库表设计生成代码
BizWorks ToolKit插件集成Mybatis-Plus代码生成工具,支持从数据库表生成代码,便于研发过程中数据模型变更后的代码同步。本文介绍批量生成代码的方法、配置说明及项目示例。配置文件`*.mp.yaml`用于描述生成行为,可放置于`src/main/resource/bizworks/mybatis-plus/`路径下。配置包括数据库信息、输出目录及包名等。通过IDEA右键菜单即可启动代码生成。具体配置和示例详见文档。
26 2
|
1月前
|
前端开发 数据库 开发者
数据模型(数据库表设计)生成代码
BizWorks ToolKit 插件集成 Mybatis-Plus 代码生成工具,支持从数据库表批量生成代码,简化开发流程。本文详细介绍配置方法及项目示例,包括配置文件格式、生成选项及具体操作步骤,帮助开发者快速实现代码同步更新。配置文件 `.mp.yaml` 支持自定义输出目录、生成组件等,适用于多种项目结构。
37 0
|
1月前
|
关系型数据库 数据库 网络虚拟化
Docker环境下重启PostgreSQL数据库服务的全面指南与代码示例
由于时间和空间限制,我将在后续的回答中分别涉及到“Python中采用lasso、SCAD、LARS技术分析棒球运动员薪资的案例集锦”以及“Docker环境下重启PostgreSQL数据库服务的全面指南与代码示例”。如果你有任何一个问题的优先顺序或需要立即回答的,请告知。
50 0
|
1月前
|
SQL 安全 数据库
基于SQL Server事务日志的数据库恢复技术及实战代码详解
基于事务日志的数据库恢复技术是SQL Server中一个非常强大的功能,它能够帮助数据库管理员在数据丢失或损坏的情况下,有效地恢复数据。通过定期备份数据库和事务日志,并在需要时按照正确的步骤恢复,可以最大限度地减少数据丢失的风险。需要注意的是,恢复数据是一个需要谨慎操作的过程,建议在执行恢复操作之前,详细了解相关的操作步骤和注意事项,以确保数据的安全和完整。
78 0
|
2月前
|
数据库 C# 开发者
WPF开发者必读:揭秘ADO.NET与Entity Framework数据库交互秘籍,轻松实现企业级应用!
【8月更文挑战第31天】在现代软件开发中,WPF 与数据库的交互对于构建企业级应用至关重要。本文介绍了如何利用 ADO.NET 和 Entity Framework 在 WPF 应用中访问和操作数据库。ADO.NET 是 .NET Framework 中用于访问各类数据库(如 SQL Server、MySQL 等)的类库;Entity Framework 则是一种 ORM 框架,支持面向对象的数据操作。文章通过示例展示了如何在 WPF 应用中集成这两种技术,提高开发效率。
42 0
|
2月前
|
JSON 数据格式 Java
化繁为简的魔法:Struts 2 与 JSON 联手打造超流畅数据交换体验,让应用飞起来!
【8月更文挑战第31天】在现代 Web 开发中,JSON 成为数据交换的主流格式,以其轻量、易读和易解析的特点受到青睐。Struts 2 内置对 JSON 的支持,结合 Jackson 库可便捷实现数据传输。本文通过具体示例展示了如何在 Struts 2 中进行 JSON 数据的序列化与反序列化,并结合 AJAX 技术提升 Web 应用的响应速度和用户体验。
84 0
|
2月前
|
Java 前端开发 Spring
技术融合新潮流!Vaadin携手Spring Boot、React、Angular,引领Web开发变革,你准备好了吗?
【8月更文挑战第31天】本文探讨了Vaadin与Spring Boot、React及Angular等主流技术栈的最佳融合实践。Vaadin作为现代Java Web框架,与其他技术栈结合能更好地满足复杂应用需求。文中通过示例代码展示了如何在Spring Boot项目中集成Vaadin,以及如何在Vaadin项目中使用React和Angular组件,充分发挥各技术栈的优势,提升开发效率和用户体验。开发者可根据具体需求选择合适的技术组合。
48 0