您的位置:首页 > 编程语言 > ASP

ASP EF框架,实体框架(EntityFramework),DataBaseFirst

2018-01-07 11:47 447 查看
DataBaseFirst:EF框架自动根据数据库生成数据层和model。

项目--添加--新建项--数据--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 C# EF框架