MS Dynamics CRM System.InvalidCastException
本文关键字:InvalidCastException System CRM Dynamics MS | 更新日期: 2023-09-27 17:57:06
我有一个奇怪的问题,我有大量的实体,我有一个XrmSchema.cs由CRMSvcUtil在我的crm系统中生成,这对我很有用,尤其是在使用查询并将它们转换为代码中的实体对象时。这种转换方法非常适合除一个以外的所有实体,我一直收到System.InvalidCastException:无法为这个实体转换类型为"Microsoft.Xrm.Sdk.Entity"错误的对象。下面是生成它的以下代码段,它在 toList() 方法中抛出异常:
public List<etel_productcharacteristic> RetrieveCharacteristic(Guid characteristicId)
{
using (XrmDataContext context = new XrmDataContext(CRMConnection.OrganizationService))
{
var query = from characteristic in context.etel_productcharacteristicSet
where characteristic.etel_productcharacteristicId == characteristicId && characteristic.statecode.Value == etel_productcharacteristicState.Active
select characteristic;
return query.ToList();
}
}
任何人都可以指出我这段代码可能有什么问题。顺便说一下,我在互联网上读到的所有解决方案都建议使用启用代理方法。在我的情况下,在初始化组织服务时调用了启用代理方法,因此它看起来不像罪魁祸首。所有其他转换在我的插件中工作正常 这个一定有问题。
您需要更改此行:
where characteristic.etel_productcharacteristicId == characteristicId && characteristic.statecode.Value == etel_productcharacteristicState.Active
阅读
where characteristic.etel_productcharacteristicId.Id == characteristicId && characteristic.statecode.Value == (int)etel_productcharacteristicState.Active
老实说,您需要仔细检查我的(int)
转换,因为这可能不是必需的 - 我只是没有代码在我面前进行验证。