EF操作增删改查
lianxiEntities db = new lianxiEntities();//上下文的入口
#region //EF Added
//UserInfo user = new UserInfo();
////user.UserInfoId = 1;自增长不用赋值
//user.UserInfoName = "张三1";
//user.SubTime = DateTime.Now;
////在这里只是告诉上下文去要保存此实体
//db.UserInfo.AddObject(user);
//UserInfo user1 = new UserInfo();
////user.UserInfoId = 1;自增长不用赋值
//user1.UserInfoName = "张三2";
//user1.SubTime = DateTime.Now;
////在这里只是告诉上下文去要保存此实体
//db.UserInfo.AddObject(user1);
////在这里才真正的去保存到数据库,执行Sql脚本
//db.SaveChanges();
#endregion
#region //查询UserInfoId=2的userinfo实体
//在下面u非常类似于foreach(var item in xx)
var user1 = (from u in db.UserInfo
where u.UserInfoId == 2
select u).FirstOrDefault<UserInfo>();//推荐使用这种方式,不抛异常,如果一个应用程序使用try{} catch(){}如果代码抛出异常的时候也就是catch的时候会比较消耗资源,所有最好不用SingleOrDefault
//var user2 = (from u in db.UserInfo
// where u.UserInfoId == 2
// select u).First<UserInfo>();//用First,如果集合里面是空的话就会报一个异常
//var user3 = (from u in db.UserInfo
// where u.UserInfoId == 2
// select u).SingleOrDefault<UserInfo>();
////SingleOrDefault返回单个或者是默认值
//var user4 = (from u in db.UserInfo
// where u.UserInfoId == 2
// select u).Single<UserInfo>();
//
//FirstOrDefault<UserInfo>();如果集合里面有多条数据则返回第一条,如果没有则返回默认值
#region //update
//在上面已经把实体查询出来了,如果要修改的话只需要改属性,然后在保存就可以了
//查询出来的实体,默认是被上下文跟踪的
user1.UserInfoName = "zhangsan";
db.SaveChanges();
#endregion
#region //delete
db.UserInfo.DeleteObject(user1);
db.SaveChanges();
#endregion
Console.WriteLine(user1.UserInfoName);
#endregion