c#ef框架里Bll层的查询方法为什么要定义成泛型类呢,有什么好处

图片说明
/upload/201903/21/1553129005_404417.png)

通常都是在BaseService里提供泛型类的增删改查函数,如

public IQueryable LoadEntities(System.Linq.Expressions.Expression> whereLambda)
{

                    return CurrentDal.LoadEntities(whereLambda);
    }

然后每个实体新建一个Service继承BaseService,泛型T就指定具体了。如图,StaffService创建实例后就可以查询Staff实体了,
但是查询通常会查询多表啊,就是查询多个实体。
我的疑惑有两点:

1、为什么不在Bll层提供Dbcontext实例呢,到时可以方便的任意查询多表。
2、比如我要在StaffService里查询其他实体时,你们是怎么处理的呢