动态LINQ查询无法与Taxonomy字段一起正常工作

时间:2013-11-07 23:00:45

标签: c# linq

我正在使用Dynamic Linq查询。我以字符串形式动态生成查询条件并传递给查询。以下是我正在使用的代码。

 var q = dc.ListDirectory.AsQueryable().Where(condition).OrderBy("Title");
 foreach (var p in q)
 {
   Console.WriteLine(p.Title);`enter code here`
 }

除了Taxonomy字段之外,上述查询工作正常(使用其他字符串字段,即使是大量数据)。由于我无法直接对分类法字段进行比较,因此我只将其字符串部分进行比较。分类条件的条件就像

Type.Label =" Text"

使用分类法查询字段条件: 只有10没有。列表中的项目工作正常。

但是当没有。列表中的项目大约是419。

我发现它甚至在获得var q中的值之前开始执行foreach循环并且没有设置Object引用...错误。

有任何线索吗?

1 个答案:

答案 0 :(得分:0)

您正在寻找c.TaxnonomyColumnName].Label.Equals("Text") ...但这并不能保证c.Title不会为空(我不确定c在这种情况下是什么,所以我无法帮助你为什么它是空的。

如果您不想获得空引用异常,那么我可以添加一个额外的where子句来过滤掉它们。

var q = from c in dc.ListDirectory
        where (c.[TaxnonomyColumnName].Label.Equals("Text") && c.Title != null)
        select c.Title;

foreach (var p in q) { Console.WriteLine(p); }