对EF进行增删查改,首先要拿到EF的上下文
上下文的名字不是固定的,用的时候先把它拷贝过来。
Class Program
{
Static void Main(string[] args)
{
//EF CRUD
//创建EF上下文
Hemam2DbEntities db=new Hemam2DbEntities();
//查询
//Linq表达式语法:u代表一个参数,一个变量,变量名字,in后面是集合,遍历每个集合,遍历每个元素的时候把每个元素交给u这个变量。最后在把u选择出来。当然,可以加where条件,就是当u.ID满足大于零的时候,再把集合中的元素选出来。
//linq表达式返回的结果都是IQueryable类型的。
IQueryable<UserInfo> temp=from u in db.UserInfo
where u.ID>0
Select u;
foreach(var userInfo in temp)
{
Console.WriteLine(UserInfo.ID);
}
//修改
//通过linq表达式或者学的lambda查询出来的实体,默认是被EF上下文跟踪监视的。
var user=temp.FirstOrDefault();//取出集合中的第一条数据,如果不存在则返回默认值。
If(user!=null)
{
Console.WriteLine(“{0}-{1}”,User.ID,User.Name);
//内部会自动告诉上下文我当前这个实体改变了,状态也一并改成Modified状态。
User.Name=DateTime.Now.Tostring();//把名字改一下
//给上下文下个命令,去把所有的变化保存会数据库。
db.Savechages();//保存
}
//删除
If(user!=null)
{
//先定位到这个表,在把上面取到的第一行数据传进去
db.UserInfo.DeleteObject(user);//这里只是把user标记成删除状态,并没有真正删除
db.SaveChanges();//这里才是真正删除
}
//添加
//添加实体的时候先把实体创建好,赋初始值
UserInfo userInfo=new UserInfo();
userInfo.Name=”shenjun”;
userInfo.Pwd=”123”;
//这里也是先定位到表,然后在把实体传进去
db.UserInfo.AddObject(userInfo);
//只要想保存会数据库必须调用SaveChanges();
db.SaveChages();
Console.Reakey();
}
}