我收到类似System.InvalidOperationException
的错误
Microsoft.OData.Client.dll中发生未处理的类型'System.InvalidOperationException'的异常附加信息:类型'ProductsApp4.Microsoft.Dynamics.DataEntities.LegalEntityContact'的键属性'Type'的类型为'System.Nullable` 1 [[ProductsApp4.Microsoft.Dynamics.DataEntities.LogisticsElectronicAddressMethodType,ProductsApp4,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null]]',这不是一个简单的类型。只有简单类型的属性才是关键属性。
以下是发生错误的代码:
private static void ReadLegalEntities(Resources context)
{
Console.WriteLine();
foreach (var legalEntity in context.LegalEntities.AsEnumerable())
{
Console.WriteLine("Name:{0}", legalEntity.Name);
}
}
任何人都可以建议如何解决此错误?
我发现这与使用Dynamics 365 for Finance和Operations(以前称为Dynamics Ax7)数据实体有关。根据下面从Dynamics集成GitHub repo引用的封闭支持问题,在.NET中使用D365实体时,需要使用自定义oData客户端DLL来避免此错误。
https://github.com/Microsoft/Dynamics-AX-Integration/issues/34
在https://github.com/Microsoft/Dynamics-AX-Integration/tree/master/Packages中使用自定义OData dll这应该可以解决问题。