gpt4 book ai didi

linq - QueryExpression 与 FetchXml CRM2011

转载 作者:行者123 更新时间:2023-12-04 13:02:24 24 4
gpt4 key购买 nike

我们发现 CRM 2011 的 Linq 严重损坏 - 它似乎在没有对其执行任何 QA 的情况下进入。提供程序损坏程度的指标是 .Where(x => x== "b") 之类的查询有效,但此 .Where(x => "b"== x) 可能不取决于某些先前的条件,例如 a加入声明。实际上,我不得不重写查询提供程序的部分内容,并且对我整理的废话感到更加幸运。

然而,这不能继续下去,还有其他问题,而且我没有为 MS 工作的报酬,所以我正在寻找替代方案。这两个出现了 QueryExpression 和 FetchXml,详见此处:http://msdn.microsoft.com/en-us/library/gg334607.aspx

谁能给我一个诚实的、现实生活中使用 QueryExpression 与 FetchXml 的利弊?我想知道它们在性能、开发速度、健壮性和灵 active 方面的比较。

最佳答案

为了建立在 Anwar 专注于 LINQ 与 FetchXml 的出色答案的基础上,我将补充说我从不使用 QueryExpression . Why ?

LINQ: Queries are built using standard language, but internally uses QueryExpression so is limited to the features of QueryExpression.

QueryExpression: Queries are built as an object model. Supports all the features in FetchXML except for aggregates and grouping.



所以查询能力比 FetchXml差没有高级查找代码生成,它提供与 LINQ 提供程序相同的功能,同时提供完全非标准的查询接口(interface)(与 LINQ 不同)。

至于 LINQ(非)功能,LINQ 提供程序的局限性很明显,我认为还不错, documented .您的 .Where(x => "b" == x)例如,片段违反了 where条款限制:

where: The left side of the clause must be an attribute name and the right side of the clause must be a value. You cannot set the left side to a constant. Both the sides of the clause cannot be constants.



不为微软辩护:他们需要加入 很多在 LINQ 提供程序是专业级之前,在 LINQ 提供程序(阅读:直接到 SQL 提供程序)上的工作,但是嘿,至少他们有一个很好的免责声明。

关于linq - QueryExpression 与 FetchXml CRM2011,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9182200/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com