簡體   English   中英

ASP.NET LINQ 查詢 DbSet.Join() 不起作用

[英]ASP.NET LINQ query DbSet.Join() does not work

我嘗試在 ASP.NET Entity Framework 7 中運行這段代碼。目標是在這里擁有最有效的解決方案,如果數據庫應該是 JOIN。

public async Task<List<Building>> GetAllAsync(string commaSeparatedBuildingIDs)
    {
        var buildingRefIDs = commaSeparatedBuildingIDs.Split(",").ToList();

            return await semiSoftDbContext.Buildings
            .Join(buildingRefIDs, building => building.ReferenceId, refID => refID, (building, id) => building)
            .ToListAsync();

    }

我收到以下錯誤:

System.InvalidOperationException:LINQ 表達式 'DbSet().Join( inner: __p_0, outerKeySelector: building => building.ReferenceId, innerKeySelector: refID => refID, resultSelector: (building, id) => building)' 無法翻譯. 以可以翻譯的形式重寫查詢,或者通過插入對“AsEnumerable”、“AsAsyncEnumerable”、“ToList”或“ToListAsync”的調用來顯式切換到客戶端評估。 有關詳細信息,請參閱https://go.microsoft.com/fwlink/?linkid=2101038。`

我已經嘗試了幾種連接變體並通讀了 inte.net,但它說 ASP.Net 應該與 Join() 一起工作。

你不應該在這里加入(假設你正在使用實體框架 - AFAIK它不會處理很多本地collections的操作,比如加入),使用Where with Contains

return await semiSoftDbContext.Buildings
   .Where(b => buildingRefIDs.Contains(b.ReferenceId))
   .ToListAsync();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM