0

以下のコードを使用しています。「var workReportItem」の最後の行のworkReportItemに、顧客(アカウント)の参照を設定するまではすべてOKです。コードは次のとおりです。

private static void AddWRItoServiceActivity(IOrganizationService service, Guid id)
    {
        using (var crm = new XrmServiceContext(service))
        {

            var serviceactivity = crm.ServiceAppointmentSet.Where(c => c.Id == id).First();
            var serviceitem = crm.brd_serviceitemSet.Where( c => c.brd_RegardingServiceId.Id == serviceactivity.ServiceId.Id);

            foreach (var S in serviceitem)
            {
                var workReportItem = new brd_workreportitem
                   {
                       brd_name = S.brd_name,
                       brd_serviceappointment_brd_workreportitem = serviceactivity,
                       brd_brd_serviceitem_brd_workreportitem_ServiceItem = S,
                       brd_brd_servicereportitem_brd_workreportitem_ServiceReportItem = S.brd_brd_servicereportitem_brd_serviceitem_ServiceReportItem,
                       brd_Customer = serviceactivity.Customers.First().ToEntityReference(),
                    };

                // Setting the optionset value "type"
                OptionSetValue myOptionSet = new OptionSetValue();
                myOptionSet.Value = S.brd_brd_servicereportitem_brd_serviceitem_ServiceReportItem.brd_Type.Value;
                workReportItem.Attributes["brd_type"] = myOptionSet;

                crm.AddObject(workReportItem);
                crm.SaveChanges();
            }
        }
    }

エラー: 値を null にすることはできません。パラメーター名: ソース。誰かが助けてくれれば幸いです。

4

2 に答える 2

0

顧客はnullのようです。サービスアクティビティのために顧客を引き戻すには、設定された顧客に対して別のクエリを実行する必要があります。

于 2013-01-07T21:29:37.027 に答える
0

以下のコードを使用して、パーティーリストに参照を設定しました。

ActivityParty activityParty = new ActivityParty { PartyId = new EntityReference(MissionAccount.LogicalName, MissionAccount.Id) };
var customer = new List<ActivityParty>();
customer.Add(activityParty);
serviceactivity.Customers = customer;
于 2013-01-14T10:36:14.503 に答える