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(およびODataが提供するメタデータ)の設計により、実際にはWebサービススタイルの「サービス参照の追加」またはコマンドラインツールを使用でき、VisualStudioはサービスのクエリに必要なクラスを自動的に構築します。ODataは統合クエリメカニズムも提供するため、クラスは必要に応じてLINQスタイルのインターフェイスも提供します。

このブログ投稿では、ODataの使用についてもう少し詳しく説明しています:http://crdevelopment.net/2011/06/11/ebayodat/

于 2012-09-28T06:35:17.210 に答える