1

CRM 4 では、ディスク上のファイルとの間で EntityCollection を取得できました。CRM Online インスタンスのバックアップ メカニズムとデータ転送の両方を作成する一環として、これを行いたいと考えています。

ただし、これは CRM 2011 では正しく機能しないようです。各エンティティの Attributes コレクションには空の KeyValuePairOfStringObjects のリストが含まれ、各エンティティの FormattedValues コレクションには空の KeyValuePairOfStringStrings のリストが含まれているためです。

したがって、エンティティの属性の名前と値はシリアル化に含まれていませんが、VS デバッガーで表示すると、確実に値が含まれています。

これらのコレクションをプログラムでファイルに保存して、後でデシリアライズし、データを元の場所または並列ターゲット インスタンスに復元するために使用できるようにする方法はありますか (オフライン テストなど)。

4

2 に答える 2

2

これは、@bigtv によって提案されたシリアル化方法の私のバージョンです。

private string Serialize(EntityCollection records)
{
    string retVal = null;   
    using(var tw = new StringWriter())
    using (var xw = new XmlTextWriter(tw))
    {
        var ser = new DataContractSerializer(typeof(EntityCollection));
        ser.WriteObject(xw, records);
        retVal = tw.ToString();
    }
    return retVal;
}
于 2014-09-09T10:23:36.007 に答える