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。

  • 相关阅读:
    401. Binary Watch
    46. Permutations
    61. Rotate List
    142. Linked List Cycle II
    86. Partition List
    234. Palindrome Linked List
    19. Remove Nth Node From End of List
    141. Linked List Cycle
    524. Longest Word in Dictionary through Deleting
    android ListView详解
  • 原文地址:https://www.cnblogs.com/taven/p/1818596.html
Copyright © 2011-2022 走看看