您的位置:首页 > 编程语言 > ASP

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

2016-05-11 23:07 831 查看
首先介绍一下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实体集合,

是不会创建数据库,今天我们的数据库创建讲到现在就完了,

源码下载
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mvc EF创建数据库