ASP.NET MVC+Entity Framework 创建数据库

首先介绍一下Entity Framework(个人使用的方式,我没有深入研究),Entity
Framework后面简称EF,EF对象关系解决方案,让程序设计者专心于程序设计,
简单的说,就是将数据对象模型转化成应用程序对象,然后应用程序对象的增删
改对应数据对象模型的增删改,中间转换成SQL语句,从而实现数据库操作。

下面我们开始实战

一,web.config 配置数据库连接
<connectionStrings>
    <add name="BlogApp" connectionString="Data Source=MFY-PC\MSSQLSERVER2012;Initial Catalog=BlogApp;User ID=sa;Password=12345678" providerName="System.Data.SqlClient" />
  </connectionStrings>

二,创建数据库上下文
1.首先添加EF包


2.创建数据库上下文

数据库上下文
  public BlogContext() : base("BlogApp")
        {

        }

基类构造函数参数就是web.config配置的节点名称

三.添加数据表对应的程序实体模型
1例如我们添加一张分类表


  public class Category
    {
        /// <summary>
        /// 编号
        /// </summary>
        public int Id
        {
            get;
            set;
        }

        /// <summary>
        /// 分类名称
        /// </summary>
        public string Name
        {
            get;
            set;
        }

        /// <summary>
        /// 分类显示图标
        /// </summary>
        public string IconPath
        {
            get;
            set;
        }
    }

我们只是简单的添加了一个类型,并没有看到主键,也没有看到字段的长度表示?

2.给实体类添加数据库配置(方法有多种)


   public class CategoryConfiguration:EntityTypeConfiguration<Category>
    {
        public CategoryConfiguration()
        {
            this.ToTable("Category");
            this.HasKey(x => x.Id);
        }
    }

this.ToTable(“Category”);设置数据库表实体Category.cs对应数据库的表名称是Category
this.HasKey(x => x.Id);设置数据库实体Category.cs对应数据库主键为Id.

四.给数据库上下文添加Category 实体集合
  public class BlogContext : DbContext
    {

        public BlogContext() : base("BlogApp")
        {

        }

        public IDbSet<Category> Categorys
        {
            get;
            set;
        }


    }

Categorys集合负责对表Category的存取。

疑问
上面虽然讲了数据库模型和程序设计模型的对应关系,
但是程序到底是怎么创建数据库,并且怎么创建数据库表,
项目在怎么调用BlogContext,怎么调用CategoryConfiguration,

五,BlogContext添加CategoryConfiguration
  public class BlogContext : DbContext
    {

        public BlogContext() : base("BlogApp")
        {

        }

        public IDbSet<Category> Categorys
        {
            get;
            set;
        }

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder.Configurations.Add(new  CategoryConfiguration());
        }


    }
}

OnModelCreating是在BlogContext重载,
那么现在解决了怎么调用CategoryConfiguration的问题,
那么到底怎么调用BlogContext,我们自己手动调用测试一下。

六.HomeControl添加ReadCategory动作
   public ActionResult ReadCategory()
        {
            var dbContext = new BlogContext();
            var mdoels = dbContext.Categorys.ToList();
            return View(mdoels);
        }

七.ReadCategory 添加对应的视图。


@model IEnumerable<BlogApp.Entity.Category>

@{
    ViewBag.Title = "ReadCategory";
}

<h2>ReadCategory</h2>

<p>
    @Html.ActionLink("Create New", "Create")
</p>
<table class="table">
    <tr>
        <th>
            @Html.DisplayNameFor(model => model.Name)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.IconPath)
        </th>
        <th></th>
    </tr>

@foreach (var item in Model) {
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.Name)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.IconPath)
        </td>
    </tr>
}

</table>

八.运行程序,测试是否创建数据库


从上图可以看到创建了BlogApp数据库,数据库包含Category表。
所有只要调用了BlogContext的集合,才会创建数据库,
如果没有BlogContext实例,调用BlogContext实体集合,
是不会创建数据库,今天我们的数据库创建讲到现在就完了,
 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值