EF中使用linq进行关联查询

EF使用linq进行多表查询是完全可以的,最后ToList()调用的时候回产生一条分页的sql语句,所以并不是全部查询再分页的。所以不会影响查询的性能

 public void TestLinq()
        {
            var a = from m in DbContext.Set<T1>() join q in DbContext.Set<T2>() on m.ID equals q.ID select m;
            a.OrderBy(m=>m.Phone_User).Skip(2).Take(2).ToList();
        }

 我们可以利用dynamic灵活的动态取出指定的字段

 var a = from m in DbContext.Set<T1>() join q in DbContext.Set<T2>() on m.ID equals q.ID select new { m.ID, m.Phone };
 a = a.OrderBy(m => m.Phone).Skip(2).Take(2);
 List<dynamic> c = a.ToList<dynamic>();
 var b = c[0].ID;

是不是很方便?

原文地址:https://www.cnblogs.com/njcxwz/p/5885490.html