當我訪問所有城市時,我的代碼就像這樣。實體框架包含父實體
public IQueryable<City> GetAll()
{
var result = from s in this.Context.Cities.Include("States.Countries") select s;
return result;
}
這工作正常,包括狀態和countires。我想通過國家ID獲取城市,下面是我的代碼。在下面的代碼中,我想包含每個城市的States.Countires。我怎樣才能做到這一點 ?
public IEnumerable<City> GetByCountriesId(int Id)
{
var result = from s in this.Context.Countries
join a in this.Context.States on s.Id equals a.Country_Id
join b in this.Context.Cities on a.Id equals b.States_Id
where s.Id == Id
select b;
return result;
}
'this.Context.Cities.Include( 「State.Country」)。如果「City」和「State」具有適當的導航屬性,那麼(c => c.State.Country.Id == Id)'就足夠了。 –
你使用什麼版本的EF?我問,因爲包含你使用的字符串參數是舊的,你應該使用表達式方法來支持編譯時。例如:'.Include(x => x.States)' –