ASP EF框架,实体框架(EntityFramework),DataBaseFirst
2018-01-07 11:47
447 查看
DataBaseFirst:EF框架自动根据数据库生成数据层和model。
项目--添加--新建项--数据--ADO.NET实体数据模型--从数据库生成--新建连接--选择服务器名、数据库--[是,在连接字符串中包括敏感数据]--选择数据库中的数据表、视图、存储过程--完成--覆盖Web.config
项目--添加--新建项--数据--ADO.NET实体数据模型--从数据库生成--新建连接--选择服务器名、数据库--[是,在连接字符串中包括敏感数据]--选择数据库中的数据表、视图、存储过程--完成--覆盖Web.config
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace WebApplication1 { public partial class WebForm1 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } //插入 protected void Button1_Click(object sender, EventArgs e) { UserInfo userInfo = new UserInfo(); userInfo.Email = "sss@256.com"; userInfo.RegTime = DateTime.Now; userInfo.UserName = "sss56"; userInfo.UserPass="123456"; EFFristModelEntities db = new EFFristModelEntities(); //Model1.Context.cs中的类。(上下文类,都是通过该类实现和数据库的交互) db.UserInfo.Add(userInfo);//将数据添加到EF并且添加了添加标记。 db.SaveChanges(); //执行该语句,数据才会保存到数据库。返回受影响的行数。 Response.Write(userInfo.ID); } //查询 protected void Button2_Click(object sender, EventArgs e) { EFFristModelEntities db = new EFFristModelEntities(); //linq var userInfoList = from u in db.UserInfo where u.ID ==343 select u; //linq语句。u是自定义变量,在这里的类型是UserInfo类型。在此处并未在数据库中执行查询。返回的是一个list集合。 foreach (UserInfo userInfo in userInfoList)//EF 延迟加载机制,数据用到的时候才去数据库中查询。不能用的时候不查询。 { Response.Write(userInfo.UserName); } // select * from UserInfo where ID=343 // from UserInfo 数据库中SQL语句的执行顺序。 // where ID=343 // select * } //删除 protected void Button3_Click(object sender, EventArgs e) { EFFristModelEntities db = new EFFristModelEntities(); /* 第一种删除方式 var userInfoList = from u in db.UserInfo where u.ID == 345 select u; UserInfo userInfo=userInfoList.FirstOrDefault(); //返回第一个元素,如果没有的话,返回默认值null if (userInfo != null) { //db.UserInfo.Remove(userInfo); //添加删除标记,但是必须先执行查询操作才能成功打上标记。 db.Entry<UserInfo>(userInfo).State = System.Data.EntityState.Deleted; //添加删除标记,此方法不需要执行查询就可以直接打上标记。 db.SaveChanges(); //执行删除操作。 } else { Response.Write("要删除的数据不存在!!"); } */ //第二种删除方式。 UserInfo userInfo = new UserInfo() {ID=344}; //db.UserInfo.Remove(userInfo); //先执行查询操作,才能打上标记(不常用)。 db.Entry<UserInfo>(userInfo).State = System.Data.EntityState.Deleted; //添加删除标记,此方法不需要执行查询就可以直接打上标记。 db.SaveChanges(); //如果要删除的数据不存在,则会报错。删除之前最好查询一下。 } //修改 protected void Button4_Click(object sender, EventArgs e) { EFFristModelEntities db = new EFFristModelEntities(); var userInfoList = from u in db.UserInfo where u.ID == 343 select u; var userInfo = userInfoList.FirstOrDefault(); if (userInfo != null) { userInfo.UserPass = "666666"; db.Entry<UserInfo>(userInfo).State = System.Data.EntityState.Modified; db.SaveChanges(); } else { Response.Write("要修改的数据不存在!!"); } } } }
相关文章推荐
- ASP EF框架,实体框架(EntityFramework),ModelFirst,导航属性(一对多的表关系,外键)
- EF-EntityFrameWork中文名:实体框架(数据持久化框架)
- ASP.NET 之 EntityFramework实体框架搭建
- MVC之实体框架(数据持久化框架)EntityFrameWork(EF)
- ASP.NET 之 EntityFramework实体框架搭建
- 实体框架 (EF) 入门 => 五、连接和模型
- 【搭建Spring.net+EF+Asp.net MVC框架】---(3) 配置详解
- EF 相关问题:您的项目引用了最新版实体框架;但是...
- EF----实体框架集合
- EF实体框架数据操作接口
- 【EF 1】EF实体框架 原理+实例
- vs2010中添加项目中找不到EntityFramework实体框架解决办法
- ADO.Net EF Start (1):ADO.NET 实体框架概述(MSDN)
- 实体框架 (EF) 入门 => 四、CodeFirst 枚举支持
- 从头编写 asp.net core 2.0 web api 基础框架 (4) EF配置
- 【菜鸟看框架】——EF如何自动生成实体
- EF实体框架之CodeFirst六
- 不用EF框架,完成完美实体映射,且便于维护!(AutoMapper,petapoco)
- 10.C#:实体框架EF(entity framework)
- 【菜鸟看框架】——如何给EF实体添加注释