0

此代码从 CRM 2011 REST 服务 API 接收 ATOM 提要。它有效,但似乎非常冗长,但我找不到更有效的方式来使用响应。我将不胜感激任何建议,或者如果我的问题需要更具体,我会问这是推荐的方法吗?到目前为止,我在 CRM SDK 或 MSDN 中对此一无所知。

XmlDocument xml = new XmlDocument();
xml = xrm.GetXMLData(query);
XDocument xdoc = XDocument.Parse(xml.OuterXml);
XNamespace d = "http://schemas.microsoft.com/ado/2007/08/dataservices";
XNamespace m = "http://schemas.microsoft.com/ado/2007/08/dataservices/metadata";
XNamespace atom = "http://www.w3.org/2005/Atom";
foreach (var entity in xdoc.Descendants(atom + "entry"))
{
    var psi = entity.Element(atom + "content")
                     .Element(m + "properties")
                      .Element(d + "new_name");

    var status = entity.Element(atom + "content")
                        .Element(m + "properties")
                         .Element(d + "new_ExternalStatus");

    UpdateExternalDBStatus(psi.Value, status.Value);
}
4

1 回答 1

0

从内存中,API 是基于 OData 的。由于 OData 的设计(及其提供的元数据),您实际上可以使用 Web 服务样式“添加服务参考”或命令行工具,Visual Studio 将自动构建查询服务所需的类。OData 还提供集成查询机制,因此如果需要,这些类还提供 LINQ 样式接口。

这篇博文更详细地解释了使用 OData:http: //crdevelopment.net/2011/06/11/ebayodat/

于 2012-09-28T06:35:17.210 回答