一些简单的ADO.NET Entity Framework 的例子
2011-01-01 11:02 音乐让我说 阅读(544) 评论(0) 编辑 收藏 举报
自己写的一个EF例子,代码如下:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using EntityDAL; using System.Data.Objects; namespace WebUI { public partial class _Default : System.Web.UI.Page { /// <summary> /// 加载事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void Page_Load(object sender, EventArgs e) { using (var eatCmsContext = new EatCMSEntities()) { #region 示例1 string esql = "select value c from EatCMSEntities.UserInfo as c order by c.Id desc skip 3 limit 10"; ObjectQuery<UserInfo> objQuery = eatCmsContext.CreateQuery<UserInfo>(esql); objQuery = objQuery.Where("it.userAge>@userAge"); objQuery.Parameters.Add(new ObjectParameter("userAge", 50)); Response.Write("SQL语句为:" + objQuery.ToTraceString() + "<br/><br/><br/>"); Response.Write("查询结果的类型信息为:" + objQuery.GetResultType() + "<br/>"); ObjectResult<UserInfo> objResult = objQuery.Execute(MergeOption.NoTracking); Response.Write("查询结果的数量为:" + objResult.Count() + "<br/><br/>"); foreach (var item in objQuery) { Response.Write(item.userName + ":" + item.userAge + "<br/>"); } #endregion #region 示例2 string esql = "select value u from EatCMSEntities.UserInfo as u where u.userAge>@userAge order by u.Id desc"; ObjectQuery<UserInfo> objQuery = eatCmsContext.CreateQuery<UserInfo>(esql, new ObjectParameter("userAge", 200000)); //UserInfo userInfo = objQuery.First(); //如果objQuery中没有结果,则会发生异常 UserInfo user = objQuery.FirstOrDefault(); //如果objQuery中没有结果,将会返回null 给user变量 if (user == null) { Response.Write("暂无记录!"); return; } Response.Write(user.userName + ":" + user.userAge + "<br/>"); #endregion #region 示例3 Except(差集)方法、Intersect(交集)方法 string esql1 = "select value u from EatCMSEntities.UserInfo as u"; string esql2 = "select value u from EatCMSEntities.UserInfo as u where u.userAge>50"; ObjectQuery<UserInfo> objQuery1 = eatCmsContext.CreateQuery<UserInfo>(esql1); ObjectQuery<UserInfo> objQuery2 = eatCmsContext.CreateQuery<UserInfo>(esql2); ObjectQuery<UserInfo> objQuery3 = objQuery1.Except(objQuery2); Response.Write("记录总数:" + objQuery3.Count() + "<br/><br/>"); foreach (var item in objQuery3) { Response.Write(item.userName + ":" + item.userAge + "<br/>"); } #endregion #region 示例4 练习[增加] UserInfo u = new UserInfo() { userName = "冯小刚", userAge = 45 }; eatCmsContext.AddToUserInfo(u); int result = eatCmsContext.SaveChanges(); if (result == 0) { Response.Write("插入失败!"); } else { Response.Write("插入成功!"); Response.Write("返回的值为:" + result + "<br/>" + "员工编号为:" + u.Id + "<br/>"); UserInfo newUser = eatCmsContext.UserInfo.FirstOrDefault<UserInfo>(newU => newU.Id == u.Id); Response.Write("员工姓名:" + newUser.userName + "<br/>员工年龄:" + newUser.userAge); } #endregion #region 示例4 练习[修改] 注意:不能更新主键 string esql = "select value u from EatCMSEntities.UserInfo as u where u.Id=@Id"; ObjectQuery<UserInfo> objUserInfo = eatCmsContext.CreateQuery<UserInfo>(esql, new ObjectParameter("Id", 1020)); UserInfo user = objUserInfo.FirstOrDefault<UserInfo>(); if (user != null) { user.userName = "吴宇森"; user.userAge = 58; int result = eatCmsContext.SaveChanges(); if (result == 0) { Response.Write("修改失败!"); } else { Response.Write("修改成功!" + result + "<br/>"); } } #endregion #region 示例4 练习[删除] UserInfo user = eatCmsContext.UserInfo.FirstOrDefault(u => u.Id == 1021); if (user == null) { Response.Write("删除时,对象不存在,可能该对象已经被删除了!"); return; } eatCmsContext.DeleteObject(user); int result = eatCmsContext.SaveChanges(); if (result == 0) { Response.Write("删除失败!"); } else { Response.Write("删除成功!" + result + "<br/>"); } #endregion #region 示例4 练习[调用存储过程] UserInfo user = eatCmsContext.proc_GetUserInfoById(1020).FirstOrDefault<UserInfo>(); if(user == null) { Response.Write("对象不存在!"); return; } Response.Write("姓名:" + user.userName + ",年龄:" + user.userAge); #endregion } #region 示例4 练习[事务] EatCMSEntities context = null; System.Data.Common.DbTransaction trans = null; try { context = new EatCMSEntities(); context.Connection.Open(); trans = context.Connection.BeginTransaction(); UserInfo user = context.UserInfo.FirstOrDefault(u => u.Id == 999); user.userName = "诸葛亮"; user.userAge = 1500; context.SaveChanges(); UserInfo user2 = context.UserInfo.FirstOrDefault(u => u.Id == 1055); user2.userName = "李世民"; user2.userAge = 1000; context.SaveChanges(); trans.Commit(); Response.Write("成功!"); } catch (Exception) { Response.Write("出现异常!失败!"); if (trans != null) { trans.Rollback(); } } finally { if (context != null && context.Connection.State != System.Data.ConnectionState.Closed) { context.Connection.Close(); } } #endregion } } }
欢迎浏览!
作者:音乐让我说(音乐让我说 - 博客园)
出处:http://music.cnblogs.com/
文章版权归本人所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。