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().Take().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().Take();
List<dynamic> c = a.ToList<dynamic>();
var b = c[].ID;
是不是很方便?