EF多表、直接sql

多表并分页查询

AuthorDesign项目:

 /// <summary>
        /// 加载管理员列表
        /// </summary>
        /// <param name="roleId">权限Id</param>
        /// <param name="mobile">手机号码</param>
        /// <param name="startNum">起始数字</param>
        /// <param name="pageSize">页长</param>
        /// <param name="IsDesc">是否倒序排列</param>
        /// <param name="rowCount">总个数</param>
        /// <returns></returns>
        public IQueryable<dynamic> LoadPageList(int roleId, string mobile, int startNum, int pageSize, bool IsDesc, out int rowCount)
        {
            rowCount = 0;
            var result = from p in db.Set<Admin>()
                         join a in db.Set<Authory>() on new { AuthoryId = p.AuthoryId } equals new { AuthoryId = a.Id } into a_join
                         from a in a_join.DefaultIfEmpty()
                         where p.IsSuperAdmin == 0
                         select new
                         {
                             p.Id,
                             p.IsLogin,
                             p.Mobile,
                             p.AdminName,
                             p.Email,
                             p.CreateTime,
                             a.Name,
                             p.AuthoryId,
                             p.LastLoginTime
                         };
            if (roleId > 0)
            {
                result = result.Where(m => m.AuthoryId == roleId);
            }
            if (!string.IsNullOrEmpty(mobile))
            {
                result = result.Where(m => m.Mobile == mobile);
            }
            if (IsDesc)
            {
                result = result.OrderByDescending(m => m.CreateTime);
            }
            else
            {
                result = result.OrderBy(m => m.CreateTime);
            }
            rowCount = result.Count();
            return result.Skip(startNum).Take(pageSize);
        }
View Code
var queryable = (from a in StudentList
                      join b in SchoolList1
                      on a.Id equals b.Id into b1
                      from b2 in b1.DefaultIfEmpty()
                      select new
                      {
                          a.Id,
                          a.Name,
                          t = b2.Name
                      });
var listp = queryable.Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList();
var total = queryable.Count();
View Code

EF直接操作SQL语句

http://www.cnblogs.com/mrzhoushare/articles/7092144.html

EF操作存储过程

见MyBootstrapDemo参考项目

EF事物

http://www.cnblogs.com/mrzhoushare/articles/7064686.html

posted @ 2017-06-19 15:22  Dukezhou  阅读(201)  评论(0)    收藏  举报