本人是MVC新手,将从微软官网学习MVC并将看过的英文文档翻译成中文,由于本人英文水平不好,有翻译不准确、错误的地方万望指出,我看到后将会在第一时间修改。另外也希望这一系列文章能为后来者起到引导作用。 微软原文地址:http://www.asp.net/mvc/overview/getting-started/introduction/adding-a-model

原创文章,转载必需注明出处:http://www.ncloud.hk/%E6%8A%80%E6%9C%AF%E5%88%86%E4%BA%AB/learnmvc5-addamodel/

添加Model

在本文中我将带领你创建一些类去管理数据库中的Movies。这些将要创建的类就是ASP.Net MVC中的M,即Model。

你将使用Entity Framework 这一.NET Framework 数据库访问技术去创建和使用model类。Entity Framework(通常称为 EF) 支持一种开发模式叫做Code First(代码优先)。你可以使用Code First通过书写简单的代码来创建Model对象。(相对于"原始的CLR objects",这也被称为POCO 类)然后你可以通过你创建的Model类来创建数据库,这是一个非常简单快捷的开发工作流程。如果你依旧想先创建数据库,你也可以按照这个教程来学习MVC和EF开发。

添加Model类

在Solution Explorer中,右键点击Models文件夹,选择Add,然后选择Class

输入类名为“Movie”

使用下面的代码覆盖Movie类:

using System;
namespace MvcMovie.Models{
public class Movie
{
public int ID { get; set; }
public string Title { get; set; }
public DateTime ReleaseDate { get; set; }
public string Genre { get; set; }
public decimal Price { get; set; }
}}

我们将使用Movie类来代替数据库中存储的电影信息。每一个Movie类的实例都代表着数据库中movie表的一行数据,Movie类的每一个属性映射到数据库中movie表的每一列。

在和上面相同的文件夹中添加下面的MovieDBContext类:

using System;
using System.Data.Entity;
namespace MvcMovie.Models{
public class Movie
{
public int ID { get; set; }
public string Title { get; set; }
public DateTime ReleaseDate { get; set; }
public string Genre { get; set; }
public decimal Price { get; set; }
}
public class MovieDBContext : DbContext
{
public DbSet<Movie> Movies { get; set; }
}
}

MovieDBContext代表着Entity Framework的电影数据库类,这个类负责在数据库中获取,存储,更新,处理 Movie 类的实例。MovieDBContext继承自Entity Framework的 DbContext基类。

为了使用DbContext和DbSet,你需要添加下面的命名空间到文件的顶部:

using System.Data.Entity;

你可以手动入命名空间,或者你也可以在代码提示的红色波浪线上点击右键选择Resolve,然后选择System.Data.Entity.

注意:一些不用的using语句已经被删除了--通过在文件中右键单击,选择“组织Using”,然后单击”移除未使用的using”。

我们已经成功的添加了一个Model(MVC中的M)。下一篇文章中你将会使用数据库链接字符串。

随机推荐

  1. UI:触摸事件 与 事件的回应

    事件分类:晃动.触摸.远程控制(如遥控器.红外控制) 触摸开始时候的方法(判断单击,双击,三击事件可以写在这里) -(void)touchesBegan:(NSSet *)touches withEv ...

  2. Number

    https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/parseInt 概述 parseIn ...

  3. Java的初步认识

    PS:弥补那些错过的时间,弥补那些本是决定做而没有做的事情,当初说好了学习编程要把自己学到的或是理解的写到博客中记录下来,可是由于各种缘由最终是没有实现...经过几番周折决定把那些丢掉的重新捡起来.对 ...

  4. 数据库相关文章转载(1) MySQL性能优化之参数配置

    1.目的: 通过根据服务器目前状况,修改Mysql的系统参数,达到合理利用服务器现有资源,最大合理的提高MySQL性能. 2.服务器参数: 32G内存.4个CPU,每个CPU 8核. 3.MySQL目 ...

  5. CMSIS Example - Signal and Yield

    /*---------------------------------------------------------------------------- * RL-ARM - RTX *----- ...

  6. IDA Script: Remove empty auto labels

    http://simeonpilgrim.com/blog/2010/03/25/ida-script-remove-empty-auto-labels/ #include <idc.idc&g ...

  7. 关于Java中的程序,进程和线程的详解...

    程序:一段静态的代码,一组指令的有序集合,它本身没有任何运行的含义,它只是一个静态的实体,是应用软件执行的蓝本. 进程:是程序的一次动态执行,它对应着从代码加载,执行至执行完毕的一个完整的过程,是一个 ...

  8. The source attachment does not contain the source for the file SignatureParser.class错误

    在myeclipse整合tomcat的完毕后,再启动tomcat的时候会出现这样的错误,呵呵,错误的大致意思是什么相关联错误,其实是myeclipse新加入的tomcat的模式出现错误了,myecli ...

  9. Server对象的Execute方法

    Server 对象是专门为处理服务器上的特定任务而设计的,它提供了对服务器上的方法和属性的访问,通过调用这些方法和属性的设置,可以允许用户使用服务器上的许多功能,如可以取得服务器运行环境的功能,但最重 ...

  10. jquery,extjs中的extend用法小结

    在jquery中,extend其实在做插件时还是用的比较多的,今天同时小结jquery和ext js中 的extend用法,先来看jquery中的. 1)  extend(dest,src1,src2 ...