不能在linq到xml的地方使用DescendantNodes

时间:2016-04-18 06:58:22

标签: c# xml linq linq-to-xml

我有一个xml字段的类,如下所示:

Public System.Xml.Linq.XElement ProductAttributeXML {get;set;}

我有一个像下面这样的查询:

var query = (from product in db.ProductAttributeCombinations
                     where product.ProductAttributeXML.DescendantNodes().Count()>0
                     select product

                         );
        var x = query.ToList();

但是在运行项目时和ToList()时出现此错误:

  

方法'System.Collections.Generic.IEnumerable`1 [System.Xml.Linq.XNode] DescendantNodes()'没有支持的SQL转换。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

DescendantNodes()无法转换SQL function。我认为,如果您使用ToList()获取数据,则此函数可在代码端运行。请试试这个:

 var query = (from product in db.ProductAttributeCombinations.ToList()//add ToList() here                 
              where product.ProductAttributeXML.DescendantNodes().Count()>0
              select product
              );