学习ASP.NET MVC(四)——我的第一个ASP.NET MVC 实体对象
今天我将根据数据库中的表结构添加一些类。这些类将成为这个ASP.NET MVC应用程序中“模型”的一部分。
我们使用Entity Framework(实体框架)来定义和使用这些模型类,并且访问数据库。实体框架 (EF) 是一种对象关系映射机制,支持 .NET 开发人员使用特定对象来处理关系数据。它消除了开发人员通常需要编写大部分数据访问代码的工作,所以也称为代码优先开发模式。使用实体框架 ,可以将自定义数据类与数据模型一起使用,而无需对数据类本身进行任何修改。 这意味着可以将“纯旧式”CLR 对象
(POCO)与数据模型一起使用。 这些 POCO 数据类(也称为“永久性未知对象”)映射到数据模型中定义的实体,它们支持与实体数据模型 工具生成的实体类型相同的大多数查询、插入、更新和删除行为。
一、添加实体类
在Visual Studio 的“解决方案资源管理器”中,右键单击Models文件夹,选择“添加—>类”。如下图。

在弹出对话框中输入类名的“Book”。 添加以下七个属性到Book类:
public class Book
{
public int BookID { get; set; }
public string Category { get; set; }
public string Name { get; set; }
public int Numberofcopies { get; set; }
public int AuthorID { get; set; }
public decimal Price { get; set; }
public DateTime PublishDate { get; set; }
}
我使用Book类来表示数据库中的Books表中的一行记录。Book对象的每个实例都将对应数据库表(Books)中的一行数据,并Book类的每个属性将映射到表中的各个列。
在同一文件中,添加BookDBContext类,代码如下:
public class BookDBContext : DbContext
{
public DbSet<Book> Books { get; set; }
}
这个BookDBContext类代表实体框架的书籍表(Books)的内容,它对数据库中Books表进行增加、修改、删除、查询的操作。这个BookDBContext继承自Entity Framework的DbContext基类。
为了能够使用DbContext和的DbSet两个类,你需要在文件的顶部添加以下语句:
using System.Data.Entity;
下面的完整Book.cs文件如下所示。
using System;
using System.Data.Entity;
namespace MvcApplication1.Models
{
public class Book
{
public int BookID { get; set; }
public string Category { get; set; }
public string Name { get; set; }
public int Numberofcopies { get; set; }
public int AuthorID { get; set; }
public decimal Price { get; set; }
public DateTime PublishDate { get; set; }
}
public class BookDBContext : DbContext
{
public DbSet<Book> Books { get; set; }
}
二、创建SQL Server连接字符串
刚才创建的BookDBContext类主要功能是连接数据库和映射数据库表记录,实现CURD。如何连接到指定数据库将呢?通过在Web.config文件中增加数据库连接信息。
首先,打开应用程序的根目录下的Web.config文件。 如下图。

Web.config文件中的<connectionStrings>元素中默认会有一个连接,如下图。

我们要做的是要把下面的连接字符串添加到Web.config文件中的<connectionStrings>元素中
<add name="BookConnection" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=Test;Integrated Security=SSPI"
providerName="System.Data.SqlClient" />
添加了新的连接字符串的Web.config文件的一部分,如下图。

只要写以上少量的代码和在Web.config文件中写一下配置信息,就完成了对数据库CURD操作的所有功能代码。
在下一篇文章中,我将会创建一个用于显示书籍信息的列表页面,同时能进行新建、修改、删除、查询操作的BookController类。
学习ASP.NET MVC(四)——我的第一个ASP.NET MVC 实体对象的更多相关文章
- 学习ASP.NET MVC(七)——我的第一个ASP.NET MVC 查询页面
在本篇文章中,我将添加一个新的查询页面(SearchIndex),可以按书籍的种类或名称来进行查询.这个新页面的网址是http://localhost:36878/Book/ SearchIndex. ...
- 学习ASP.NET MVC(一)——我的第一个ASP.NET MVC应用程序
学习ASP.NET MVC系列: 学习ASP.NET MVC(一)——我的第一个ASP.NET MVC应用程序 学习ASP.NET MVC(二)——我的第一个ASP.NET MVC 控制器 学习ASP ...
- 学习ASP.NET MVC(五)——我的第一个ASP.NET MVC CURD页面
在上一篇文章中我们已经创建了实体类,在这一篇文章中,我将创建一个新的控制器类——BookController,使用BookController对Books表中的数据进行CURD操作的方法,并使用视图模 ...
- 学习ASP.NET MVC(三)——我的第一个ASP.NET MVC 视图
今天我将对前一篇文章中的示例进行修改,前一篇文章中并没有用到视图,这次将用到视图.对于前一个示例中的HelloWorldController类进行修改,使用视图模板文件生成HTML响应给浏览器. 一. ...
- 学习ASP.NET MVC(二)——我的第一个ASP.NET MVC 控制器
MVC全称是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,是一种软件设计典范,用一种业务逻辑和数据显示分离的方法组织代码,将 ...
- 学习ASP.NET MVC(六)——我的第一个ASP.NET MVC 编辑页面
在上一文章中由Entity Framework(实体框架)去实现了对数据库的CURD操作.在本篇文章中,主要是调试修改自动生成的动作方法和视图,以及调试编辑功能与编辑功能的Book控制器. 首先,在V ...
- 初入码田--ASP.NET MVC4 Web应用之创建一个空白的MVC应用程序
初入码田--ASP.NET MVC4 Web应用开发之一 实现简单的登录 初入码田--ASP.NET MVC4 Web应用开发之二 实现简单的增删改查 2016-07-29 在此之前,需要一台电脑( ...
- 7、ASP.NET MVC入门到精通——第一个ASP.NET MVC程序
本系列目录:ASP.NET MVC4入门到精通系列目录汇总 开发流程 新建Controller 创建Action 根据Action创建View 在Action获取数据并生产ActionResult传递 ...
- ASP.NET MVC入门到精通——第一个ASP.NET MVC程序
开发流程 新建Controller 创建Action 根据Action创建View 在Action获取数据并生产ActionResult传递给View. View是显示数据的模板 Url请求→Cont ...
随机推荐
- myeclipse如何修改Web项目名称,eclipse如何修改项目名字
myeclipse如何修改Web项目名称 1.复制一个现有的项目,重命名项目名称 2.这里的项目名称重新命名了,但是Web项目本质下的名称还是没有改变的.所以需要更改,更改方法-->选择项目右击 ...
- 我看见的第一个XCODE编译错误 - Command /applications.../clang failed with exit code 1
开始用XCODE学习Apple相关开发的东东,写些demo熟悉Object C,一直还没看见什么问题,昨晚在家把一些demo上传到代码服务器,今天在另外一台机器上下载下来编译,出现了问题: Preco ...
- 基于VC的ACM音频编程接口压缩Wave音频(三)
(三)音 频 数 据 的 压 缩 下 面 说 明 使 用 CODEC 实 现 音 频 压 缩 的 过 程:假 设 源 信 号 为8K 采 样.16bits PCM 编 码. 单 声 道. 长 度 为1 ...
- PHP程序员如何突破技术瓶颈
身边有几个做PHP开发的朋友,也接触到不少的PHP工程师,他们常疑虑自己将来在技术上的成长与发展,我常给他们一些建议,希望他们能破突自己,有更好的发展. 先明确我所指的PHP工程题,是指毕业工作后,主 ...
- solr&lucene3.6.0源码解析(三)
solr索引操作(包括新增 更新 删除 提交 合并等)相关UML图如下 从上面的类图我们可以发现,其中体现了工厂方法模式及责任链模式的运用 UpdateRequestProcessor相当于责任链模式 ...
- 人脸识别经典算法三:Fisherface(LDA)
Fisherface是由Ronald Fisher发明的,想必这就是Fisherface名字由来.Fisherface所基于的LDA(Linear Discriminant Analysis,线性判别 ...
- bzoj 3110
题意:戳这里 思路:可以用cdq分治(很明显这种模型妹纸分治法很解决)..不过为了学习树套树特地写了一下.. 所谓的树套树也第一层(最外层)普通的维护的是一个node,而树套树维护的是一个数据结构(一 ...
- bzoj 3714
题意:n<=2000的盒子,有一些里面有球,再给你所有c[i][j](1<=i<=j<=n),即告诉你[i,j]里面球的总数的奇偶性需要花费c[i][j],现在求知道所有的盒子 ...
- MVC框架三大模块
1.Routing模块 Routing机制与MVC5的URL解析处理流程基本是相同的,很多的接口和类像IRouteHandler.IHttpHandler.IController .RouteBase ...
- sql 优化 链接提示 查询提示 标提示
SQL Server的查询优化器在select查询执行的时候产生一个高效的查询执行计划.如果优化器不能选择最优的计划,那么就需要检查查询计划.统计信息.支持的索引等,而通过使用提示可以改变优化器选择查 ...