ASP .NET MVC ORM 数据库优先
来源:互联网 发布:白贺翔 java架构师 编辑:程序博客网 时间:2024/06/07 02:27
1.概述
“Database First”称为“数据库优先”,即先创建数据库,后生成数据模型。该模式的使用前提
是数据库已经存在并正常工作。然后使用VistualStudioEF模型设计器,根据数据库生成数据模型。
使用EF模型设计器可以随时修改数据模型并更新数据库
在ASP.NET MVC应用程序中,所有数据模型相关的类,均默认放置于/Models目录
2.建模操作步骤
注意: 需要指定Models文件夹
1.创建ASP.NET MVC应用程序后,按下“Shift+Ctrl+A”快捷键,打开“添加新项”对话框,选择“数据”,
1.创建ASP.NET MVC应用程序后,按下“Shift+Ctrl+A”快捷键,打开“添加新项”对话框,选择“数据”,
并选择“ADO.NET实体数据模型”,打开EF向导
2.点击“添加”按钮,在“实体数据模型向导”对话框,选择“从数据库生成”
3.点击“下一步”,在“实体数据模型向导”对话框,创建数据库连接,连接到数据库,EF向导自动生成连接串
4.讲连接串保存到Web.Config 点击“下一步”,选择数据表
5.点击“完成”,VisualStudio 创建出数据模型关系图
6.EF向导自动生成的meixinEntities类,称为“数据库上下文操作类”,位于/Models/Model1.Context.cs。
2.点击“添加”按钮,在“实体数据模型向导”对话框,选择“从数据库生成”
3.点击“下一步”,在“实体数据模型向导”对话框,创建数据库连接,连接到数据库,EF向导自动生成连接串
4.讲连接串保存到Web.Config 点击“下一步”,选择数据表
5.点击“完成”,VisualStudio 创建出数据模型关系图
6.EF向导自动生成的meixinEntities类,称为“数据库上下文操作类”,位于/Models/Model1.Context.cs。
同时生成的类,称为“业务实体类”
VisualStudioEF模型设计器为我们的数据库创建了模型,并在Models目录生成.edmx文件,
.edmx文件是一个XML文件,它用于定义概念模型、存储模型以及这些模型之间的映射。
.edmx文件还包含ADO.NET实体数据模型设计器(实体设计器),用于以图形方式呈现模型的信息。
.edmx文件即实体数据模型。使用EF模型设计器修改模型时,会更改.edmx文件文件。
默认情况系,.edmx文件文件使用EF模型设计器打开还可以通过以下方式,使用XML打开
1.确保项目在VS中打开
2.在“解决方案资源管理器”中右击.emdx文件,然后选择“打开方式”
3.选择“XML编辑器”,然后单机“确定”。
使用.edmx文件创建数据模型概念
1.SSDL:存储模型,指数据库中的实体
2.CSDL:概念模型。以程序语言的角度来定义模型
3.映射:将概念模型和存储模型连接起来,以便执行操作,即实体,数学对应实体,字段
更新数据模型
如果要在数据库中添加新的数据表,或希望在数据模型中加入新的模型内容,我们可以继续用EF向导,
更新现有的数据模型。
1.打开VS 开启EF模型设计器,右键点击EF设计器的空白处,选择“从数据库更新模型”
2.打开“更新向导”,选择“数据表”
3.点击“完成”,自动添加模型
3. 实现功能
1.关联数据库连接字符串。连接字符串默认保存于Web.config文件2.OnModelCreating方法是用于在上下文对象初始化后执行相关的配置操作
3.在数据库上下文类,通常会定义多个DbSet<T>类型的对象属性,表示“业务实体集”对象。
其中,“T”代表业务实体对象,映射的是数据库中的数据表。
//添加
当需要像数据库中添加信息时,首页构建对象,然后填充其属性,然后用Add方法将对象添加到Set<T>集合中,
然后调用SaveChanges()保存到数据库
//查询
先通过Entities类打开数据库连接,然后使用Find()方法,然后将查询结果赋值给var类型 ,最后通过ViewBag
//查询
先通过Entities类打开数据库连接,然后使用Find()方法,然后将查询结果赋值给var类型 ,最后通过ViewBag
将属性传给视图
DbSet<T>.Find()方法是通过主键来查找对应的实体对象。
//更新数据
先通过Find()方法查询,然后修改对象,最后SaveChanges()保存到数据库
//删除数据
先通过Find()方法查询,获取对象,然后删除
访问单数据表
使用EF操作数据库,在控制器代码中需要引用数据模型的命名空间,即写入“using DataAccess.Models;”
“数据库上下文类”(Entities类)和“业务实体类”(字段类)默认位于该命名空间。
“数据库上下文类”(Entities类)由EF基于数据库自动生成,文件默认位于“/Models/名称.Context.cs”
DbSet<T>.Find()方法是通过主键来查找对应的实体对象。
//更新数据
先通过Find()方法查询,然后修改对象,最后SaveChanges()保存到数据库
//删除数据
先通过Find()方法查询,获取对象,然后删除
访问单数据表
使用EF操作数据库,在控制器代码中需要引用数据模型的命名空间,即写入“using DataAccess.Models;”
“数据库上下文类”(Entities类)和“业务实体类”(字段类)默认位于该命名空间。
“数据库上下文类”(Entities类)由EF基于数据库自动生成,文件默认位于“/Models/名称.Context.cs”
4.代码实例
public ActionResult Index() { //创建对象 guser user = new guser() { uname = "123", upwd = "123" }; //using 会自动释放对象 using (GOODsEntities1 db = new GOODsEntities1()) { //添加对象 db.guser.Add(user); //保存 db.SaveChanges(); } return View(); } public ActionResult About() { //查询 using (GOODsEntities1 db = new GOODsEntities1()) { // DbSet<T>.Find()方法是通过主键来查找对应的实体对象。 var admin = db.guser.Find(1); admin.upwd = "5555"; db.SaveChanges(); admin = db.guser.Find(1); ViewBag.Name = admin.uname; ViewBag.Pwd = admin.upwd; } return View(); } public ActionResult Contact() { using (GOODsEntities1 db = new GOODsEntities1()) { // DbSet<T>.Find()方法是通过主键来查找对应的实体对象。 var admin = db.guser.Find(1); db.guser.Remove(admin); db.SaveChanges(); } return View(); }
0 0
- ASP .NET MVC ORM 数据库优先
- ASP .NET MVC ORM 数据库优先
- ASP .NET MVC ORM概述
- 【ASP.NET MVC】SQL 数据库
- asp.net mvc 初学数据库实例
- asp.net MVC EFCodeFirst 生成数据库注意事项
- ASP.NET MVC使用MySQL数据库
- ASP.NET MVC使用SQLServer数据库
- ASP.NET MVC – SQL 数据库
- 关于asp.net MVC 的数据库配置
- MVC 数据库优先模式
- ASP.NET MVC学习---(一)ORM框架,EF实体数据模型简介
- ASP.NET MVC Linq to SQL 实现数据库增删改(源代码) ASP.NET MVC 分页控件
- ASP.NET MVC 显示数据库表中的数据
- Asp.Net MVC 视图(显示数据库数据表格)3
- ASP.NET MVC+Entity Framework 4.1访问数据库
- ASP.NET MVC+Entity Framework 4.1访问数据库
- ASP.NET MVC导入excel到数据库,下载文件
- HashMap之原理及死锁
- 未发布 手机可以同电脑端连接 测试 操作步奏
- Advanced Architecture Lab
- 后台和前台对json的处理
- Html+Css+Js_之table每隔3行显示不同的两种颜色
- ASP .NET MVC ORM 数据库优先
- java实现数字组合
- 集合
- learning opencv中介绍的一种可以连通区域的函数
- 用户管理 ---> 网页授权
- Unity3d-制作粒子光环特效
- git bash下出现错误Error: Cannot find module 'git目录/node_modules/git包/bin/git包'
- File.io读取文件(五)
- 并查集(Union—find)算法实现简单的迷宫