LearnMVC5-AddAModel
本人是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)。下一篇文章中你将会使用数据库链接字符串。
随机推荐
- POJ 3175 Finding Bovine Roots (暴力求解)
题意:给定一串数字,问你这是一个数字开方根得到的前几位,问你是哪个数字.析:如果 x.123... 这个数字的平方是一个整数的话,那必然sqr(x.124) > ceil(sqr(x.123)) ...
- 【百题留念】hdoj 1524 A Chess Game(dfs + SG函数应用)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1524 #include<stdio.h> #include<cstring> ...
- 网站在域名前面添加logo小图标
如何给界面添加logo?就像百度的首页出现的图标. 1.准备一个ICO格式的小图标. 2.将制作好的ICO文件放到tomcat下的“D:\apache-tomcat-6.0.16\webapps\RO ...
- sql查找字符串是否包含字符
SELECT [Fgoodsid] ,[Fgoodsname] ,[Fcinema] ,[Fprice] FROM [tenpaytest].[dbo].[goodsinfo]where Fgoods ...
- 10.关联(Association)
关联关系是类与类之间最常用的一种关系,它是一种结构化关系,用于表示一类对象与另一类对象之间有联系.它体现的是两个类.或者类与接口之间语义级别的一种强依赖关系,比如我和我的朋友.这种关系比依赖更强.不存 ...
- jquery 禁止页面滚动-移动端
禁止 window.ontouchmove=function(e){ e.preventDefault && e.preventDefault(); e.r ...
- $(document).ready()与 window.onload执行时机
$(document).ready()方法和window.onload方法有相似的功能,但是在执行时机方面是有区别的.window.onload方法是子啊网页中的所有元素(包括元素的所有关联的文件)完 ...
- Sublime Text 2 快捷键大全
Ctrl+L 选择整行(按住-继续选择下行) Ctrl+KK 从光标处删除至行尾 Ctrl+Shift+K 删除整行 Ctrl+Shift+D 复制光标所在整行,插入在该行之前 Ctrl+J 合并行( ...
- AES加密算法
代码是抄的,版权信息有 代码压缩包下载地址:http://pan.baidu.com/s/1jGEKH1c AES.h /////////////////////////////// // http: ...
- (高精度运算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_ ...