![](/img/trans.png)
[英]The specified type member 'Date' is not supported in LINQ to Entities Exception - When comparing two DateTime values in LINQ where condition
[英]Linq to Entities error when comparing int? to a values
我試圖編寫一個遍歷樹的遞歸函數。 我的實體“文件夾”具有ParentFolderID和FolderID的兩個屬性。 如果文件夾位於根級別,則其ParentFolderID為null。 我創建了一個遞歸函數,該函數接受參數ID並添加返回與ID具有相同ParentFolderID的所有文件夾實體,但是出現了“無法創建類型為System.Object”的常量的錯誤。 在這種情況下,僅支持原始類型或枚舉類型。
這是我的功能:
private List<Folder> GetFolderChildren(int? folderId)
{
var childFolders = new List<Folder>();
// finalList is List<> that is actually returned
var finalList = new List<Folder>();
// Your looking at the root level folder
if (folderId == null)
{
childFolders = DocumentEntities.Folders.Where(x => x.ParentFolderID.Equals(folderId)).ToList();
}
else
{
childFolders = DocumentEntities.Folders.Where(x => x.ParentFolderID == folderId).ToList();
}
// If there are no childFolders, then you've hit the bottom of this branch. Return this folder.
if (!childFolders.Any())
{
finalList.Add(DocumentEntities.Folders.SingleOrDefault(x => x.FolderID == folderId));
}
else
{
foreach (var childFolder in childFolders)
{
finalList.AddRange(GetFolderChildren(childFolder.FolderID, pageName));
}
// Now that you've gone through this folders children, add this folder
finalList.Add(DocumentEntities.Folders.SingleOrDefault(x => x.FolderID == folderId));
}
return finalList;
}
當folderID為null或int時,它永遠不會到達foreach。 有任何想法嗎?
如果x.ParentFolderID
為null
,則您將無法通過Equals
方法訪問它,因為它為null。 嘗試將整個值與參數進行比較,因為它的類型相同,例如
childFolders = Entities.Folders.Where(x => x.ParentFolderID == folderId).ToList();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.