I m 开发服务,通过动态实体(如Microsoft)消费2011年CRM数据。 Xrm.Sdk.Entity, 过时约束的方法。 我故意不使用Xrm.cs方法(具有早期约束力),企图使我的解决办法具有通用性。
此外,我希望避免直接连接CRM数据库(例如EDMX),因为这将阻止我的解决办法供一个东道国的CRM(例如,没有直接进入银行)。
我有以下(简化)要求,我确实在努力满足甄选标准:
A random 7% of records needs to be selected (and updated).
选修标准比较容易——我知道如何选择随机记录的百分比。 类似:
SELECT TOP 7 PERCENT * FROM
(
SELECT TOP 1000 NEWID() AS Foo, [someColumns]
FROM [someTable]
)
AS Bar ORDER BY Bar.Foo ASC
这完全可行。 我收集了相当于《准则》的内容:
from e in someEntities
orderby Guid.NewGuid()
select e;
然而,我不知道如何使用准则Q与CRM2011动态实体——相反,他们坚持使用一些限制性的QueryExpression等级/syntax或fetchXML,见,这页(MSDN)。
我确定了满足这一要求的以下选择:
利用有活力的实体将整个记录重新列入清单,然后简单地选择按指数进行随机选择。 然而,这涉及在互联网数据服务中恢复多达10 000份记录,这可能是缓慢/不安全/不稳定的。
采用fetchXML声明。 不幸的是,我不知道有FetchXML,因此我不知道它是否能够做像COUNT、TOP、PERCENT或NewID()。
Use Xrm.cs and LINQ, or use a Stored Procedure, or a SQL view. All of these options mean tying the solution down to either direct database connectivity and/or early binding, which is not desirable.
Say no to the customer.
任何建议都会受到高度赞赏。 fetchXML能够执行这一询问? 是否有更好的办法这样做?