ASP.NET MVC4入门教程(四):添加一个模型
作者:葡萄城控件技术团队 发布时间:2024-05-09 09:02:58
在本节中,您将添加一些类,这些类用于管理数据库中的电影。这些类是ASP.NET MVC 应用程序中的"模型(Model)"。
您将使用.NET Framework 数据访问技术Entity Framework,来定义和使用这些模型类。Entity Framework(通常称为 EF) 是支持代码优先的开发模式。代码优先允许您通过编写简单的类来创建对象模型。(相对于"原始的CLR objects",这也被称为POCO 类)然后可以从您的类创建数据库,这是一个非常干净快速的开发工作流程。
添加模型类
在解决方案资源管理器中,右键单击模型文件夹,选择添加,然后选择类.
输入Class名 "Movie"。
将下列五个属性添加到Movie类:
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类的每个属性将对应表的一列。
在同一文件中,添加下面的MovieDBContext类:
public class MovieDBContext : DbContext
{
public DbSet<Movie> Movies { get; set; }
}
MovieDBContext类代表Entity Framework的电影数据库类,这个类负责在数据库中获取,存储,更新,处理 Movie 类的实例。MovieDBContext继承自Entity Framework的 DbContext基类。
为了能够引用DbContext和DbSet,您需要在文件的顶部添加以下using语句:
using System.Data.Entity;
下面显示了完整的Movie.cs文件。(一些不用的using语句已经被删除了)
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; }
}
}
创建连接字符串并使用SQL Server LocalDB
您刚创建的MovieDBContext类用来连接数据库,并将Movie对象映射到数据库表记录。你可能会问一个问题,如何指定它将连接到那个数据库。通过在应用程序的Web.config文件中添加数据库连接信息来指定连接到那个数据库。
打开应用程序根目录的Web.config文件。(不是View文件夹下的Web.config文件。)打开红色高亮标记的Web.config文件。
在Web.config文件中的<connectionStrings>内添加下面的连接字符串。
<add name="MovieDBContext"
connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Movies.mdf;Integrated Security=True"
providerName="System.Data.SqlClient"
/>
下面的例子里显示了部分Web.config文件中所新添加的连接字符串:
<connectionStrings>
<add name="DefaultConnection"
connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-MvcMovie-2012213181139;Integrated Security=true"
providerName="System.Data.SqlClient"
/>
<add name="MovieDBContext"
connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Movies.mdf;Integrated Security=True"
providerName="System.Data.SqlClient"
/>
</connectionStrings>
为了表示和存储电影数据到数据库中,上面少量的代码和XML是你所需要的一切。
接下来,您将创建一个新的MoviesController类,您可以用它来??展示电影数据,并允许用户创建新的影片列表。
猜你喜欢
- DELIMITER $$DROP PROCEDURE IF EXISTS getUserInfo $$CREATE PROCEDURE ge
- 这个是捕获键盘事件输入状态的js代码,它可以判断你敲打了键盘的那个键,ctrl、shift,26个字母等等,返回具体键盘值。Javascri
- SQL Server数据库快捷键:书签:清除所有书签。 CTRL-SHIFT-F2书签:插入或删除书签(切换)。 CTRL+F2书签:移动到
- Numpy中repeat函数使用Numpy是Python强大的数学计算库,和Scipy一起构建起Python科学计算生态。在本节下面我们重点
- 1. 为什么要查看梯度对于初学者来说网络经常不收敛,loss很奇怪(就是不收敛),所以怀疑是反向传播中梯度的问题(1)求导之后的数(的绝对值
- 本文实例讲述了python os模块简单应用。分享给大家供大家参考,具体如下:举例中的目录形式如下所示:In [36]: pwdOut[36
- 以下代码实现环境是mac系统,本地配置mysql服务端和navicat premium客户端,python环境是配置了pymysql的ana
- 名片管理系统一、思路1、定义名片操作选项2、把增加的名片信息存储到字典中3、所有名片信息存储到列表4、对于误操作给出提示二、用到的知识点1、
- 本文实例讲述了php多进程中的阻塞与非阻塞操作。分享给大家供大家参考,具体如下:我们通过pcntl_fork来创建子进程,使用pcntl_w
- 1.不要放过任何一个看上去很简单的小编程问题——他们往往并不那么简单,或者可以引伸出很多知识点;2.会用asp,并不说明你会asp;3.看a
- 说起模板引擎,很多人会认为这是后台的东西(如PHP的Smarty、Java的Velocity),跟前端没有关系。然而,随着前端的逻辑变得越来
- 本文实例为大家分享了python3.6实现弹跳小球游戏的具体代码,供大家参考,具体内容如下import randomimport timef
- 0x01介绍PySocks使您可以通过SOCKS和HTTP代理服务器发送流量。它是SocksiPy的现代分支,具有错误修复和其他功能。0x0
- var obj = document.getElementByIdx_x(”testSelect”); //定位idvar index =
- 使用 substring()或者slice() 函数:split() 功能:使用一个指定的分隔符把一个字符串分割存储到数组 例子: str=
- 说在前面突发奇想,想了解一下mysql order by排序是以什么规则进行的? 好了,话不多说,直接进入正题吧。MySql order b
- 随机显示图片代码:<div class="sidebarcen"><script language=&
- Rex 是 Perl 编写的基于 SSH 链接的集群配置管理系统,语法上类似 Puppet DSL。官网中文版见 http://rex.pe
- 1 MySQL的autocommit设置MySQL默认是开启自动提交的,即每一条DML(增删改)语句都会被作为一个单独的事务进行隐式提交。如
- 单一数据读取方式:第一种:slice_input_producer()# 返回值可以直接通过 Session.run([images, la