我有兩個表格,像這樣:
我想選擇城市為 "DDD "的Table2,但我也想包括Table1。
我正在使用 LINQ 的 EF Core Web API 作業。我已經嘗試了一些解決方案,比如:
public async Task<IEnumerable<Rha> > GetSubRHAByAssign(string assign)
{
var result = await _db.Rhas.Select(x => new { Rha = x, Things = x.SubRhas.Where(p=> p.Assign == assign) }).AsNoTracking() 。ToListAsync() 。
return result;
}
但是它給了我一個錯誤。無法將'System.Collections.Generic.List`1[<>f__AnonymousType11`2[GesitAPI.Models.Rha,System.Collections.Generic.IEnumerable`1[GesitAPI.Models.SubRha]]'型別的物件轉變成'System.Collections.Generic.IList`1[GesitAPI.Models.Rha]'型別。
我正在使用這樣一個介面:
Task<IEnumerable<Rha>> GetSubRHAByAssign(string assign)。
另外,你可以看到我的實際問題與例子不同。這里我有兩個表。RHA和SubRHA。主要問題還是一樣的,我想根據Assign獲得SubRHA,但我也想包括RHA。RHA是主表,SubRHA是帶有RHA表外鍵的表。
我已經嘗試使用 JOIN,但仍然給我同樣的錯誤。有什么想法嗎?
uj5u.com熱心網友回復:
嘗試修改你的選擇,如下所示
var result = await _db. Rhas.Include("SubRhas").Where(x=>x.SubRhas.Assign.Containing(assign)).ToListAsync()。
uj5u.com熱心網友回復:
我已經找到了我自己的解決方案。我使用這個查詢:
var result = await _db.Rhas.Include(c => c.SubRhas.Where(o => o.Assign == assign)
.ThenInclude(o => o.SubRhaevidences)
.Where(x => x.SubRhas.Any())
.AsNoTracking()
.ToListAsync()。
因此,它將獲得帶有條件的SubRhas,但我的問題是,即使我把where條件放在SubRhas里面,查詢仍然回傳另一個與SubRhas無關的資料。這就是為什么我在第一個表上添加另一個條件,以獲得SubRhas不是空的資料。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/309886.html
標籤:
上一篇:資料庫的外鍵約束保存


