本练习案例在Visual Studio 2010 平台 上操作
1.新建项目工程,选择“ASP.NET MVC 2 Web 应用程序”(不是它的空应用程序)
名称:MyUser
位置:D:\msproject\
解决方案名称:MyApps
下一步会提示你是否创建测试工程,默认选择,则生成工程文件。
1)关于测试工程:这时如果你马上右键点解决方案选择生成(build),会报错,因为测试工程还没有添加web工程的引用。
右键点下面测试工程(MyApps.Tests)下面的引用(reference),选择“添加引用”,弹出窗默认项目里显示了你新建的项目,点确定引用。
添加完引用之后,再右键解决方案生成,就不会报错了。
2)然后"运行解决方案中的测试(ctrl+R,A)",测试按钮组合的第二个按钮,下方框会进行测试工程的测试。
关于是否创建成功:“调试”->“启动调试”(按F5),会跳出默认页面
2.创建数据库,使用SQL express创建测试用表
1)右键点解决方案,选择添加新建项,在弹出窗左边选择“数据”,右边选择“SQL server 数据库”,名称为MyApps.mdf,保存时会提示你保存到App_Data文件夹,选择“是”,完成添加。
如果创建实例失败,则要检查下你的SQL express服务是否有开。
2)双击右边工程里的MyApps.mdf,会打开该数据库的连接。右键点表选择添加新表,会切换到添加列的页面。
userid int 属性中选择自增长
username nvarchar(50)
nickname nvarchar(50)
phone nvarchar(50)
3.创建Model层,涉及内容有:LING to SQL 、Entity Framework 4、创建实体类、创建接口
(1)右键点Models选择添加新项目,“数据”-->“ADO.NET 实体数据模型”,点添加,在弹出窗选择“从数据库生成”进行下一步
---- 下拉菜单选择你刚才建的数据库,点下一步后会显示出该数据库的所有表信息,可选择的有表、视图、存储过程,建议全选;
---- 勾选“确定所生对象名称的单复数形式”,点完成后便开始生成实体模型;
---- 最后会跳到MyUser.edmx关系图的页面,当中的MyUserEntities会注册到Web.config文件中;
---- 这个实体关系图里面,会有名称和实体集名称,都自动命名跟表名一样;
---- 比如在这里
名称:User (默认)
实体集名称:Users (勾选“确定所生对象名称的单复数形式”的结果)
(2)添加对应的数据模型访问接口类,右键点Models选择新建项,"代码"-->"接口"即可生产接口文件。
给接口文件添加一些最基本的方法:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace MyUser.Models
{
interface IMyUserDao
{
public IQueryable<MyUser> FindAll();
public IQueryable<MyUser> FindMyUser();
public MyUser GetMyUser(int id);
public void Add(MyUser user);
public void Delete(MyUser user);
public void Save(MyUser user);
}
}
3)实现数据访问对象的接口,vs的继续没有myeclipse那样方便,在新建的时候可以查找选择你要继承的接口。
接口层实现需要手动写继承接口和实现接口中的方法。
这过程出现一个错误:
namespace MyUser.Models
{
public class MyUserDao : MyUser.Models.IMyUserDao //右键点接口选择实现接口
{
}
}
正确:
namespace MyUser.Models
{
public class MyUserDao : IMyUserDao //右键点接口选择实现接口
{
}
}
这里步骤就主要2个部分:一是新定义数据访问对象,二是实现接口,并用数据访问对象进行操作
例如:
//声明数据访问接口
MyUserEntities db = new MyUserEntities(); // MyUser.edmx中的MyUser.Designer.cs中定义
public IQueryable<MyUser> FindAll()
{
return db.Users;
}
4. 创建controller层,注意这一层的routing路由(即url重写)是在Global.asax文件中
(1)右键点Controller文件夹,选择新建控制器类,命名UserController.cs
(2)默认有Index()的action,再加一个Detail()的action,在方法里面调用数据库访问对象实现功能
(3)右键点View选择添加视图(View),命名为NotFound,完成后在View目录下自动创建NotFound.aspx。
一般情况下,我们根据对应的方法来生产视图文件,即鼠标点在方法所在行,右键选择添加视图。
这样生成的视图文件自动放在User目录下,这样的路径才正确,才能正确访问。
注意!我们的增删改查可以用强制类型的View来实现:
1)右键点Action行添加新视图,在弹出窗中勾选创建强类型视图。
2)勾选后,在视图数据类中指定对应的Model,在视图内容中选择具体操作,如本方法的Details。
3)完成后,系统会自动生成一个跟Model类中字段对应的Detail.apsx页面,十分方便。
4)我们同样可以在Index方法中生成强类型视图List,这样我们就有了简单的Index.apsx页面。
5.注意生成。