今天我将根据数据库中的表结构添加一些类。这些类将成为这个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 实体对象的更多相关文章

  1. 学习ASP.NET MVC(七)——我的第一个ASP.NET MVC 查询页面

    在本篇文章中,我将添加一个新的查询页面(SearchIndex),可以按书籍的种类或名称来进行查询.这个新页面的网址是http://localhost:36878/Book/ SearchIndex. ...

  2. 学习ASP.NET MVC(一)——我的第一个ASP.NET MVC应用程序

    学习ASP.NET MVC系列: 学习ASP.NET MVC(一)——我的第一个ASP.NET MVC应用程序 学习ASP.NET MVC(二)——我的第一个ASP.NET MVC 控制器 学习ASP ...

  3. 学习ASP.NET MVC(五)——我的第一个ASP.NET MVC CURD页面

    在上一篇文章中我们已经创建了实体类,在这一篇文章中,我将创建一个新的控制器类——BookController,使用BookController对Books表中的数据进行CURD操作的方法,并使用视图模 ...

  4. 学习ASP.NET MVC(三)——我的第一个ASP.NET MVC 视图

    今天我将对前一篇文章中的示例进行修改,前一篇文章中并没有用到视图,这次将用到视图.对于前一个示例中的HelloWorldController类进行修改,使用视图模板文件生成HTML响应给浏览器. 一. ...

  5. 学习ASP.NET MVC(二)——我的第一个ASP.NET MVC 控制器

    MVC全称是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,是一种软件设计典范,用一种业务逻辑和数据显示分离的方法组织代码,将 ...

  6. 学习ASP.NET MVC(六)——我的第一个ASP.NET MVC 编辑页面

    在上一文章中由Entity Framework(实体框架)去实现了对数据库的CURD操作.在本篇文章中,主要是调试修改自动生成的动作方法和视图,以及调试编辑功能与编辑功能的Book控制器. 首先,在V ...

  7. 初入码田--ASP.NET MVC4 Web应用之创建一个空白的MVC应用程序

    初入码田--ASP.NET MVC4 Web应用开发之一  实现简单的登录 初入码田--ASP.NET MVC4 Web应用开发之二 实现简单的增删改查 2016-07-29 在此之前,需要一台电脑( ...

  8. 7、ASP.NET MVC入门到精通——第一个ASP.NET MVC程序

    本系列目录:ASP.NET MVC4入门到精通系列目录汇总 开发流程 新建Controller 创建Action 根据Action创建View 在Action获取数据并生产ActionResult传递 ...

  9. ASP.NET MVC入门到精通——第一个ASP.NET MVC程序

    开发流程 新建Controller 创建Action 根据Action创建View 在Action获取数据并生产ActionResult传递给View. View是显示数据的模板 Url请求→Cont ...

随机推荐

  1. Ubuntu 12.04 安装MySQL

    本文地址:http://www.cnblogs.com/yhLinux/p/4012689.html 本文适合新手入门. 本文是对 Ubuntu 12.04 环境下安装 MySQL 的记录,通过这两天 ...

  2. UDP及其组播,接收发送封装

    1.Receiver public class Receiver { public delegate void HeartBeat(byte[] data); public event HeartBe ...

  3. TypeError: matchExpr[type].exec is not a function

    遇到了这个问题,很久没找到答案,后来使用了万能的google,貌似也没找到答案. 详细描述下: 通过使用 $(".select")来选择jqeury对象,没问题. 通过$(&quo ...

  4. Last non-zero Digit in N!(阶乘最后非0位)

    Last non-zero Digit in N! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Jav ...

  5. P1907飞扬的小鸟

    P1907飞扬的小鸟 描述 Flappy Bird 是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度,让小鸟顺利通过画面右方的管道缝隙.如果小鸟一不小心撞到了水管或 ...

  6. How to create Web Deployment Package and install the package

    Create Web Deployment Package To configure settings on the Connection tab In the Publish method drop ...

  7. Android技术点

    一.四大组件 1.1  Activity 1.2  Broadcast 1.3  Content Provider 1.4  Service 1. Binder 2. Messager 3. AIDL ...

  8. [XAF] How to use the Allow/Deny permissions policy in the existing project

    https://www.devexpress.com/Support/Center/Question/Details/T418166 Clear [C#] using DevExpress.Persi ...

  9. 练习ajax的时候出现这个问题 还没解决

    VM601:1 Uncaught SyntaxError: Unexpected end of JSON input  应该怎么办呢

  10. oracle在impdp时报ORA-31655和ORA-39154

    检查表空间大小设置的是否合理. 另外可以试试 grant IMP_FULL_DATABASE to user;增加导入权限. (转)