修復できないエラーがあります。
パラメータとしてGUIDを取り、そのエンティティを別のエンティティに「複製」するアプリケーションを開発しています。(JavaScript を使用してこれを実行できることはわかっています。問題は、CRM サーバーに必要なロールアップがなく、更新できないことです)。
私のコンピューターでデバッグしているときはプロジェクトは正常に動作しますが、運用サーバーに展開するとクラッシュします。私の最初の推測では、認証の問題だったのですが、IIS の認証ルールを変更し、アプリを使用している Windows ユーザーを偽装しましたが、いずれにしても機能しませんでした。
スローされるエラー: -2146233088 System.Collections.ListDictionaryInternal この要求の処理中にエラーが発生しました。C:\Wip\Projects\Dev\CRMINTEGRATION\CRMINTEGRATION.DataAccess\Entities\CRMOrdenDeCompra の Ambiente.DataAccess.Entities.CRMOrdenDeCompra.CreateOrdenDeCompra (Guid guidSolicitudDeCompra) で Microsoft.Xrm.Sdk.Client.OrganizationServiceContext.SaveChanges (SaveChangesOptions オプション) で。 c:\Wip\Projects\Dev\CRMINTEGRATION\CRMINTEGRATION.WebApp\Controllers\RequestController.cs:line 22 の CRMINTEGRATION.WebApp.Controllers.RequestController.CreateOrdenDeCompra(String guid) の cs:line 42
エンティティを挿入するコード:
var solicituddecompraContext = new CRMSolicitudDeCompra();
var solicituddecompra = new new_solicituddecompra();
solicituddecompra = context.new_solicituddecompraSet.FirstOrDefault(q => q.new_solicituddecompraId == parameterGuid);
new_ordendecompra ordendecompra = new new_ordendecompra();
ordendecompra.new_ordendecompraId = Guid.NewGuid();
ordendecompra.new_name = string.Format(solicituddecompra.new_name + " ({0})", DateTime.Now.ToString("dd/MM/yyyy hh:mm:ss"));
ordendecompra.new_FechaRequirida = solicituddecompra.new_Fecharequerida;
ordendecompra.new_Tipodesolicitud = solicituddecompra.new_Tipodesolicitud;
ordendecompra.new_Observaciones = solicituddecompra.new_observaciones;
ordendecompra.new_Numerodesolicitud = solicituddecompra.new_SolicitudNo;
var detallerequisicion = CRMDetalleRequisicion.getDetalleRequisicion(context, guidSolicitudDeCompra);
context.AddObject(ordendecompra);
context.SaveChanges();
crmsvcutil.exe を使用して、CRM の XRM クラスを生成しました。したがって、コードに表示されるクラスの名前は、実際には CRM のエンティティの名前です。上記のすべては、メソッド entidad.SaveChanges() に到達するまで正常に機能します。
Ps。コードでわかるように、英語は私の母国語ではありません。間違いがあれば遠慮なく訂正してください。私はそれを感謝します:)。