使用属性的动态 LINQ 查询

发布于 2024-07-12 22:19:35 字数 744 浏览 9 评论 0原文

我已经成功地让 MSFT Dynamic Linq 的东西正常工作,但现在我需要创建一个包含属性的“Where”子句。

我得到的错误是“不存在适用的聚合方法‘First’”

这是我的代码:

where = "Element(XName.Get(\"procedure\")).Attributes(XName.Get(\"code\")).First() = \"28002\"";

var q2 = doc.Elements().Descendants("vocabularybody").AsQueryable().Where(where);

if (q2 != null && q2.Count() > 0)
foundItems.Add(item);

这是我的 XML

<vocabulary>
<vocabularyheader>
<vocabularyid>5</vocabularyid>
<vocabularyname>Scheduled Procedure</vocabularyname>
</vocabularyheader>
<vocabularybody>
<procedure code="28002" type="Surgery"/>
</vocabularybody>
</gazoontvocabulary>

I have had some success getting the MSFT Dynamic Linq stuff to work, but now I need to create a "Where" clause that includes an Attribute.

The error I get is "No applicable aggregate method 'First' exists"

Here is my code:

where = "Element(XName.Get(\"procedure\")).Attributes(XName.Get(\"code\")).First() = \"28002\"";

var q2 = doc.Elements().Descendants("vocabularybody").AsQueryable().Where(where);

if (q2 != null && q2.Count() > 0)
foundItems.Add(item);

here is my XML

<vocabulary>
<vocabularyheader>
<vocabularyid>5</vocabularyid>
<vocabularyname>Scheduled Procedure</vocabularyname>
</vocabularyheader>
<vocabularybody>
<procedure code="28002" type="Surgery"/>
</vocabularybody>
</gazoontvocabulary>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

游魂 2024-07-19 22:19:35

我还不熟悉动态 LINQ 库,但是您不应该在 where 子句中需要相等运算符 (==) 而不是赋值运算符 (=) 吗?

I'm not familiar with the Dynamic LINQ library yet but shouldn't you need the equality operator (==) and not the assignment operator (=) for the where clause?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文