2.2、ABP多表查询
1.创建实体
1 public class School : Entity<long>
2 {
3 public string Name { get; set; }
5
6 public string Address { get; set; }
8
9 /// <summary>
10 /// 学校里面的学生们
11 /// </summary>
12 public List<Student> Students { get; set; }
13 }
1 public class Student : Entity<long>
2 {
3
4 public string Name { get; set; }
5
6 /// <summary>
7 /// 学生所在的学校
8 /// </summary>
9 public School School { get; set; }
10
11 }
2.创建数据
Student名字为alun1、alun2、alun3的对应School1、2、1。
3.查询实体
1 //用GetAllIncluding方法来查询所有学生的信息,结果包含School实体
2 var listStudent1 = _studentRepository.GetAllIncluding(s=>s.School).ToList();
3
4
5 //用GetAll方法来查询所有学生的信息,结果包含School实体
6 var listStudent2 = _studentRepository.GetAll().ToList();
7
8
9 //用GetAll方法来查询所有学校的信息,结果包含List Students实体
10 var listSchool1 = _schoolRepository.GetAll().ToList();
11
12
13 //用GetAllIncluding方法来查询所有学校的信息,结果包含List Students实体
14 var listSchool2 = _schoolRepository.GetAllIncluding(s=>s.Students).ToList();
//去掉多租户查询时的Filter
CurrentUnitOfWork.DisableFilter(AbpDataFilters.MayHaveTenant, AbpDataFilters.MustHaveTenant);
因为在做多租户的查询是,ABP默认会加一些Filter,只能查询当前登录用户的信息,其他用户的信息Filter掉。