zoukankan      html  css  js  c++  java
  • 我也来说说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控制器,然后代码如下:

    代码
    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。

  • 相关阅读:
    ASP.NET应用程序与页面生命周期
    阻塞分析
    性能和异常日志
    solr 搜索引擎及搜索推荐应用
    solr 搜索引擎
    分布式缓存地址
    Windows平台分布式架构实践
    职责链模式vs状态模式区别
    HBase
    单例模式
  • 原文地址:https://www.cnblogs.com/taven/p/1818596.html
Copyright © 2011-2022 走看看