【发布时间】:2017-12-28 04:51:24
【问题描述】:
我有一个简单的设置,我试图根据父实体获取第二级子实体。
例子
public class Country {
public string Name {get;set;}
public List<State> States {get;set;}
}
public class State {
public string Name {get;set;}
public Country Country {get;set;}
public List<City> Cities {get;set;}
}
public class City {
public string Name {get;set;}
public State State {get;set;}
}
如何仅检索具有 Country.Name == "Japan" 的父级的城市(基本上忽略所有其他信息)?
我知道 ThenInclude:
dbContext.Countries
.Include(o => o.States}
.ThenInclude(x => x.Cities)
.Where(o => o.Name.Equals("Japan"))
.ToList();
然后我必须提取每个城市列表并将其合并到仅包含列表的新列表中(我认为这不是优雅的方式)。
【问题讨论】:
-
对于这个用例,城市的数量是非常有限的。无论如何,我会将其展平为两张桌子。国家表会非常小,有 195 条记录。如果您停留在拥有超过 10 万居民的城市(这对于一般用途来说非常好),那么该表最多将有 5000 条记录,SQL 将能够非常轻松地处理。
标签: asp.net entity-framework entity-framework-core