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

asp.net mvc 3.0详细笔记__09__创建数据库,应用EF连接模型类和数据表

2013-12-29 00:59 1036 查看
欢迎一起来学习MVC 3.0,我们在一步一个脚印的做一个MVC 3.0的项目,期间会有很多值得探索的地方。将会学到Razor,Lampda,Entity
Framework,Linq C#新特性等等知识,一起加油吧!

本次重点突破:

创建数据库(或者直接导入我创建好的数据库文件,下载地址:)

应用EF连接模型类和数据库

工具资源下载:http://download.csdn.net/detail/dhcsimida/6779357(下载过就不用重复下载了)

1,创建数据库。

(1)打开sql server 2008数据库软件,因人而异,我的服务器名称为.\SQLEXPRESS,用Windows身份验证。



(2)点击“新建查询”,然后输入 create database MyMusicStore ,按F5



(3)再次点击“新建查询”,然后输入 以下代码,按F5

use MyMusicStore
--创建数据表--Album--开始--
CREATE TABLE [dbo].[Album](
[AlbumId] [int] IDENTITY(1,1) NOT NULL,
[GenreId] [int] NOT NULL,
[ArtistId] [int] NOT NULL,
[Title] [nvarchar](160) NOT NULL,
[Price] [numeric](10, 2) NOT NULL,
[AlbumArtUrl] [nvarchar](1024) NULL,
CONSTRAINT [PK__Album__97B4BE370AD2A005] PRIMARY KEY CLUSTERED
(
[AlbumId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

GO
--创建数据表--Album--结束--

--创建数据表--Artist--开始--
CREATE TABLE [dbo].[Artist](
[ArtistId] [int] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](120) NULL,
PRIMARY KEY CLUSTERED
(
[ArtistId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

GO
--创建数据表--Artist--结束--

--创建数据表--Genre--开始--
CREATE TABLE [dbo].[Genre](
[GenreId] [int] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](120) NULL,
[Description] [nvarchar](4000) NULL,
PRIMARY KEY CLUSTERED
(
[GenreId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

GO
--创建数据表--Genre--结束--

--创建数据表--Cart--开始--
CREATE TABLE [dbo].[Cart](
[RecordId] [int] IDENTITY(1,1) NOT NULL,
[CartId] [varchar](50) NOT NULL,
[AlbumId] [int] NOT NULL,
[Count] [int] NOT NULL,
[DateCreated] [datetime] NOT NULL,
CONSTRAINT [PK_Cart] PRIMARY KEY CLUSTERED
(
[RecordId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

GO
--创建数据表--Cart--结束--

--创建数据表--Order--开始--
CREATE TABLE [dbo].[Order](
[OrderId] [int] IDENTITY(1,1) NOT NULL,
[OrderDate] [datetime] NOT NULL,
[Username] [nvarchar](256) NULL,
[FirstName] [nvarchar](160) NULL,
[LastName] [nvarchar](160) NULL,
[Address] [nvarchar](70) NULL,
[City] [nvarchar](40) NULL,
[State] [nvarchar](40) NULL,
[PostalCode] [nvarchar](10) NULL,
[Country] [nvarchar](40) NULL,
[Phone] [nvarchar](24) NULL,
[Email] [nvarchar](160) NULL,
[Total] [numeric](10, 2) NOT NULL,
CONSTRAINT [PK__Invoice__D796AAB51A14E395] PRIMARY KEY CLUSTERED
(
[OrderId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

GO
--创建数据表--Order--结束--

--创建数据表--OrderDetail--开始--
CREATE TABLE [dbo].[OrderDetail](
[OrderDetailId] [int] IDENTITY(1,1) NOT NULL,
[OrderId] [int] NOT NULL,
[AlbumId] [int] NOT NULL,
[Quantity] [int] NOT NULL,
[UnitPrice] [numeric](10, 2) NOT NULL,
CONSTRAINT [PK__InvoiceL__0D760AD91DE57479] PRIMARY KEY CLUSTERED
(
[OrderDetailId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

GO
--创建数据表--OrderDetail--结束--
(4)如图4.1所示,数据库以及数据表创建完成。由于数据表中的数据有很多,录入是苦力活,我就不一一录入了,您可以直接把我做好的数据文件拷走,然后导入一下即可。下载地址:数据库MyMusicStore自家博客专用

图4.1



(5)在VS2010的Controllers文件夹中添加一个类,名称为:MusicStoreEntity



(6)在MusicStoreEntity类中输入以下代码,如图6.1:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.Entity;//Entity Framework 提供的程序
using MyMusicStore.Models;

namespace MyMusicStore.Controllers
{
/// <summary>
/// 凡是和数据库打交道都需要经过这个类处理
/// </summary>
public class MusicStoreEntity : DbContext
{
public IDbSet<Album> Album { get; set; }//把模型类和数据名关联在一起了
public IDbSet<Artist> Artist { get; set; }
public IDbSet<Genre> Genre { get; set; }
}
}

图6.1



(7)将MyHomeController.cs中代码改成以下所示,结果如图7.1

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace MyMusicStore.Controllers
{
public class MyHomeController : Controller
{
private MusicStoreEntity db = new MusicStoreEntity();
public ActionResult Index()
{
var album = db.Artist.ToList();

return View(album);
}

}
}
图7.1



(8)将"Index.cshtml"中代码改成以下所示,结果如图8.1

@model IEnumerable<MyMusicStore.Models.Artist>
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>
Index</h2>
<h6>
My First MVC 3.0 APP</h6>
@{
foreach (var ins in Model)
{
<span>@ins.Name</span><br/>
}

}
图8.1



(9)按F5结果如图9.1

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: