本人是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. POJ 3175 Finding Bovine Roots (暴力求解)

    题意:给定一串数字,问你这是一个数字开方根得到的前几位,问你是哪个数字.析:如果 x.123... 这个数字的平方是一个整数的话,那必然sqr(x.124) > ceil(sqr(x.123)) ...

  2. 【百题留念】hdoj 1524 A Chess Game(dfs + SG函数应用)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1524 #include<stdio.h> #include<cstring> ...

  3. 网站在域名前面添加logo小图标

    如何给界面添加logo?就像百度的首页出现的图标. 1.准备一个ICO格式的小图标. 2.将制作好的ICO文件放到tomcat下的“D:\apache-tomcat-6.0.16\webapps\RO ...

  4. sql查找字符串是否包含字符

    SELECT [Fgoodsid] ,[Fgoodsname] ,[Fcinema] ,[Fprice] FROM [tenpaytest].[dbo].[goodsinfo]where Fgoods ...

  5. 10.关联(Association)

    关联关系是类与类之间最常用的一种关系,它是一种结构化关系,用于表示一类对象与另一类对象之间有联系.它体现的是两个类.或者类与接口之间语义级别的一种强依赖关系,比如我和我的朋友.这种关系比依赖更强.不存 ...

  6. jquery 禁止页面滚动-移动端

    禁止 window.ontouchmove=function(e){        e.preventDefault && e.preventDefault();        e.r ...

  7. $(document).ready()与 window.onload执行时机

    $(document).ready()方法和window.onload方法有相似的功能,但是在执行时机方面是有区别的.window.onload方法是子啊网页中的所有元素(包括元素的所有关联的文件)完 ...

  8. Sublime Text 2 快捷键大全

    Ctrl+L 选择整行(按住-继续选择下行) Ctrl+KK 从光标处删除至行尾 Ctrl+Shift+K 删除整行 Ctrl+Shift+D 复制光标所在整行,插入在该行之前 Ctrl+J 合并行( ...

  9. AES加密算法

    代码是抄的,版权信息有 代码压缩包下载地址:http://pan.baidu.com/s/1jGEKH1c AES.h /////////////////////////////// // http: ...

  10. (高精度运算4.7.26)POJ 1220 NUMBER BASE CONVERSION(高精度数的任意进制的转换——方法:ba1----->10进制----->ba2)

    package com.njupt.acm; import java.math.BigInteger; import java.util.Scanner; public class POJ_1220_ ...