Skip to content

Navigation query

shuxin edited this page Dec 12, 2022 · 12 revisions

导航属性

Chloe 除了支持连接查询外,还支持导航属性查询。

使用导航属性需先配置实体间关系,配置方法可以使用特性(Chloe.Annotations.NavigationAttribute)的方式,也可以使用 FluentMapping 的方式。

一对一导航:

List<Person> results = dbContext.Query<Person>().Include(a => a.City).ThenInclude(a => a.Province).ToList();

通过 Include 方法可以将关联的表内容(City,Province)查出来。

一对多导航:

List<Province> results = dbContext.Query<Province>().IncludeMany(a => a.Cities).ThenIncludeMany(a => a.Persons).ToList();

通过 IncludeMany 方法可以将关联的属性集合(Cities,Persons)查出来。

查询所有导航属性:

List<Province> results = dbContext.Query<Person>().IncludeAll().ToList();

通过 IncludeAll 方法可以将关联的所有属性查出来,避免了一个一个的调用 Include 或 IncludeMany 方法。

更详细用法请参考 github 上的 demo