具有 .net 4.5 版本的项目中的动态对象和具有 .3.5 混淆的第 3 方程序集 system.linq Any() 方法在视图中

dynamic object in a project with .net 4.5 version and 3rd party assembly with .3.5 confusing system.linq Any() method inside a view

我在 4.5 版本的项目中,我还有一个在 3.5 .net 版本中编译的程序集。

我有这个代码:

 @* Select visible children *@
    var selection = node.Children.Where("Visible").Where("Level <= " + maxLevelForSitemap);

    @* If any items are returned, render a list *@
    if (selection.Any())
    {
//code
}

问题出现在selection.Any(),因为当我在项目中添加对用3.5编译的外部dll的引用时,在视图中,在运行时,我得到一个错误,方法 Any() 不存在,因为将 3.5(没有此扩展方法)的 system.Linq 与 4.0.

我设法工作的唯一方法是如果我强类型对象...

这个"dynamic linq"问题有解决方案吗?

您的选择returns 一个动态对象(动态节点),它是来自 umbraco 的自定义对象。 LINQ 不会(轻松)处理动态对象,并且您在上面使用的所有方法都是 Umbraco 版本的过滤和查询。 Umbraco 也不支持 .Any(),你应该试试 .Count()>0。