我是CRM 2011插件的新手。在这里,我是一段抛出错误的代码:
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 == serviceactivity.ServiceId);
for (int i = 1; i < serviceitem.Count(); i++)
{
var workReportItem = new brd_workreportitem
{
brd_name = "By payman Plugin",
brd_serviceappointment_brd_workreportitem = serviceactivity,
};
crm.AddObject(workReportItem);
crm.SaveChanges();
}
}
}
我试过这个:
for (int i = 1; i < serviceitem.ToList().Count(); i++)
这也给出了错误。你能帮我计算一下这样的算法还是使用其他语法如foreach? P.S。:我也试过这个:
foreach (var s in serviceitem.ToList())
答案 0 :(得分:0)
我无法看到该代码的任何问题,可能是您设置项目和早期绑定类的方式。
我建议阅读Using LINQ in CRM 2011 Plugins,尝试按照其中列出的步骤进行阅读,因为他正在描述您想要实现的目标。
答案 1 :(得分:0)
FetchXML是唯一支持Count和Sum功能的东西。 Count和Sum被认为是聚合。不幸的是,聚合不起作用 如你所说,在Linq。
以下是使用FetchXML的解释。
答案 2 :(得分:0)
最后,我成功解决了这个问题。 Ids的比较有助于预先运行。
var serviceitem = crm.brd_serviceitemSet.Where( c => c.brd_RegardingServiceId.Id == serviceactivity.ServiceId.Id);