亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用實體框架查詢多對多關系

使用實體框架查詢多對多關系

C#
墨色風雨 2022-07-23 17:40:06
我是 C# 實體框架的新手。我創建了三個類 - 國家 - 區域 - 子區域Country 和 Area 之間存在多對多的關系。Area 和 Subarea 之間還有另一種多對多的關系。一個國家可以包含許多區域,但也有屬于多個國家的區域)。區域和子區域也是如此。我創建了相應的類,并且數據庫表已自動創建。CountryAreas 和 SubAreaAreas 的表也已創建,所以一切看起來都不錯。外鍵看起來也不錯。我可以通過(見下文)將數據寫入表中。我現在正在努力從數據庫中選擇具有相應區域和子區域的所有國家。我讀了幾篇文章,看起來我缺乏關于 LINQ 查詢和實體框架的基本知識。public class Country{    #region attributes    [Key]    public string Name { get; set; }    public List<Area> Areas { get; set; } // virtual enabled lazy loading    #endregion}public class Area{    #region attributes    [Key]    public string Name { get; set; }    public virtual List<SubArea> Subareas { get; set; }    public virtual List<Country> Countries { get; set; }    #endregion}public class SubArea{    #region attributes    [Key]    public string Name { get; set; }    public virtual List<Area> Areas { get; set; }    #endregion}public class LocationScoutContext : DbContext{    public LocationScoutContext()        : base("name=LocationScout")    {    }    public DbSet<Country> Countries { get; set; }    public DbSet<Area> Areas { get; set; }    public DbSet<SubArea> SubAreas { get; set; }}// *** reading the data works fine ***using (var db = new LocationScoutContext()){   db.Countries.Add(newCountry);   db.SaveChanges();}// *** I tried this ***var allCountries = new List<Countries>();using (var db = new LocationScoutContext()){   var query = from c in db.Countries select c;}foreach (var c in query){   allCountries.Add(c);}我嘗試了上面顯示的方法,但這顯然沒有做任何連接,只是給了我帶有空白區域和子區域的國家/地區的名稱。
查看完整描述

1 回答

?
Qyouu

TA貢獻1786條經驗 獲得超11個贊

嘗試如下。這將給出所有countries與它的areassubareas。

對于 EF 6.x:

using (var db = new LocationScoutContext())
{   var countries = db.Countries.Include(c => c.Areas.Select(a => a.SubAreas)).ToList();
}

對于 EF 核心:

using (var db = new LocationScoutContext())
{   var countries = db.Countries.Include(c => c.Areas).ThenInclude(a => a.SubAreas).ToList();
}


查看完整回答
反對 回復 2022-07-23
  • 1 回答
  • 0 關注
  • 123 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號