![](/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.