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;
是不是很方便?