我有這段代碼。包含的C#lambda限制
return Folder.GetAllWithInclude(x => x.SubFolder).Take(5);
此代碼返回5個文件夾項目。我想要做的是限制子文件夾5,而不是限制文件夾到5我曾嘗試以下
return Folder.GetAllWithInclude(x => x.SubFolder.Take(5));
但它似乎並沒有這樣的伎倆。
我可能會錯過這裏的正確語法。
非常感謝你提前!
我有這段代碼。包含的C#lambda限制
return Folder.GetAllWithInclude(x => x.SubFolder).Take(5);
此代碼返回5個文件夾項目。我想要做的是限制子文件夾5,而不是限制文件夾到5我曾嘗試以下
return Folder.GetAllWithInclude(x => x.SubFolder.Take(5));
但它似乎並沒有這樣的伎倆。
我可能會錯過這裏的正確語法。
非常感謝你提前!
有沒有方法Include(Where Expression)
。如果您使用Include,您將始終加載所有記錄。
更新
您可以使用Projection
這個問題
Folder.Select(F => new
{
FolderName = F.FolderName,
SubFolders = F.SubFolders.Take(5)
}).ToList().Select(F => new Folder()
{
FolderName = F.FolderName,
SubFolders = F.SubFolders
};
但我們總是可以使用.Take()來限制?我不知道如何限制子類的返回。 –
@JackFrother你不能使用Take()來包含 – Kahbazi
不知道什麼'GetAllWithInclude'精確返回,有可能是更好的選擇,但在理論上下面應該工作:'返回文件夾GetAllWithInclude(x => x.SubFolder).SelectMany(s => s).Take(5);' –
Hi @ Me.Name但我仍然必須返回完整的文件夾記錄及其5個子文件夾項目。 –
啊對了。如果第一個文件夾包含3個項目和第二個5,它應該返回一個文件夾3和一個文件夾2項目?看起來''GetAllWithInclude'方法更容易實現。這是一種我不知道的自定義方法或一些庫方法嗎? –