三 ASP.NET MVC+Entity Framework 创建数据库
2016-05-11 23:07
831 查看
首先介绍一下Entity Framework(个人使用的方式,我没有深入研究),Entity
Framework后面简称EF,EF对象关系解决方案,让程序设计者专心于程序设计,
简单的说,就是将数据对象模型转化成应用程序对象,然后应用程序对象的增删
改对应数据对象模型的增删改,中间转换成SQL语句,从而实现数据库操作。
下面我们开始实战
基类构造函数参数就是web.config配置的节点名称
我们只是简单的添加了一个类型,并没有看到主键,也没有看到字段的长度表示?
this.ToTable(“Category”);设置数据库表实体Category.cs对应数据库的表名称是Category
this.HasKey(x => x.Id);设置数据库实体Category.cs对应数据库主键为Id.
Categorys集合负责对表Category的存取。
但是程序到底是怎么创建数据库,并且怎么创建数据库表,
项目在怎么调用BlogContext,怎么调用CategoryConfiguration,
OnModelCreating是在BlogContext重载,
那么现在解决了怎么调用CategoryConfiguration的问题,
那么到底怎么调用BlogContext,我们自己手动调用测试一下。
从上图可以看到创建了BlogApp数据库,数据库包含Category表。
所有只要调用了BlogContext的集合,才会创建数据库,
如果没有BlogContext实例,调用BlogContext实体集合,
是不会创建数据库,今天我们的数据库创建讲到现在就完了,
源码下载
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实体集合,
是不会创建数据库,今天我们的数据库创建讲到现在就完了,
源码下载
相关文章推荐
- 分享微信开发Html5轻游戏中的几个坑
- C# MVC模式下商品抽奖功能实现
- Zend的MVC机制使用分析(二)
- ASP.NET MVC 4 捆绑和缩小实例介绍
- ASP.NET Mvc开发之查询数据
- ASP.NET MVC中将控制器分离到类库的实现
- asp.net实现在非MVC中使用Razor模板引擎的方法
- ASP.NET MVC中的AJAX应用
- 为ASP.NET MVC及WebApi添加路由优先级
- ASP.NET MVC中图表控件的使用方法
- Asp.net mvc实时生成缩率图到硬盘
- 剖析ASP.NET MVC的DependencyResolver组件
- ASP.NET MVC的四种验证编程方式
- ASP.NET MVC @Helper辅助方法和@functons自定义函数的使用方法
- 仅30行代码实现Javascript中的MVC
- asp.net MVC利用ActionFilterAttribute过滤关键字的方法
- ASP.NET MVC使用ActionFilterAttribute实现权限限制的方法(附demo源码下载)
- ASP.NET MVC 3仿Server.Transfer效果的实现方法
- 如何在MVC应用程序中使用Jquery
- 利用ASP.NET MVC+EasyUI+SqlServer搭建企业开发框架