本人是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. IC各元器件封装形式图解

    CDIP-----Ceramic Dual In-Line Package CLCC-----Ceramic Leaded Chip Carrier CQFP-----Ceramic Quad Fla ...

  2. mahout算法源码分析之Itembased Collaborative Filtering(四)共生矩阵乘法

    Mahout版本:0.7,hadoop版本:1.0.4,jdk:1.7.0_25 64bit. 经过了SimilarityJob的计算共生矩阵后,就可以开始下面一个过程了,这个过程主要是共生矩阵的乘法 ...

  3. (C#)使用队列(Queue)解决简单的并发问题

    (C#)使用队列(Queue)解决简单的并发问题 2015-07-16 13:04 13265人阅读 评论(8) 收藏 举报  分类: Asp.Net(8)  版权声明:本文为博主原创文章,未经博主允 ...

  4. PHP 根据类名和方法名已面向对象的方式执行函数。

    <?php echo 'testClass'; echo '<br><hr>'; $className = 'TestClass'; $methodName = 'c_o ...

  5. Object Pascal对象模型中构造函数之研究

    http://www.delphi2007.net/delphiblog/html/delphi_2004511950333715.html 前言 近期,一直在使用 C++ 与 Object Pasc ...

  6. C166 Interfacing C to Assembler

    Interfacing C to Assembler You can easily interface your C programs to routines written in XC16x/C16 ...

  7. jQuery性能优化的28个建议

    我一直在寻找有关jQuery性能优化方面的小窍门,能让我那臃肿的动态网页应用变得轻便些.找了很多文章后,我决定将最好最常用的一些优化性能的建议列出来.我也做了一个jQuery性能优化的简明样式表,你可 ...

  8. 把自定义类实例存储到LSO

    使用flash.net.registerClassAlias( )方法保留类型信息并把类实例添加到共享对象的data属性上. LSOs 使用特殊的二进制格式,Action Message Format ...

  9. js原生appendChild的bug

    appendChild 主要是用来追加节点 插入到最后 window.onload = function(){ var ul2 = document.getElementById('ul2'); va ...

  10. 58 web框架Argo代码分析

    贴地址:https://github.com/58code/Argo 核心jar javax.servlet-api 3.0.1 guice 3.0 velocity 1.7 框架使用 servlet ...