apl*_*lon 5 linq microsoft-dynamics crm dynamics-crm
我已经在 lor 周围搜索了这个,但仍然看不到一个好的回应。我使用 Linq 和 QueryExpression 为相同的查询计时,通常后者的结果要快得多。然而,由于多个帖子中公开的许多原因(包括比 QueryExpression 语法更糟糕的事实),我更喜欢使用 Linq。
谁能解释为什么 QE 中的查询比 Linq 快?这会是环境问题(VS 2012、CRM 2011 和 2013、Windows 7 等,即非常标准)还是 QE 设计/架构比 Linq 快?
因为查询不知道后面需要哪些字段,所以在 select 子句中只指定实体时,所有列都从实体返回。为了仅指定您将使用的字段,您必须在 select 子句中返回一个新对象,指定您要使用的字段。
所以而不是这个:
var accounts = from acct in xrm.AccountSet
where acct.Name.StartsWith("Test")
select acct;
Run Code Online (Sandbox Code Playgroud)
用这个:
var accounts = from acct in xrm.AccountSet
where acct.Name.StartsWith("Test")
select new Account()
{
AccountId = acct.AccountId,
Name = acct.Name
};
Run Code Online (Sandbox Code Playgroud)
查看此帖子更多详细信息。