C# 在SuiteTalk中更优雅地计算销售订单项目

C# 在SuiteTalk中更优雅地计算销售订单项目,c#,netsuite,suitetalk,C#,Netsuite,Suitetalk,我正在使用SuiteTalk为基于NetSuite的应用程序创建后端。我正在计算销售订单中的商品总数 我的问题是,当执行搜索操作以获取所有SalesOrder时,返回的Record[]对象在使用Array.ConvertAll转换为SalesOrder[]时会失去精度。。。和手动。在我的例子中,这意味着在尝试访问itemList字段时获得一个Null引用异常 我的最终解决办法如下: 对于SearchResult SearchResult=\u service.searchsalesOrderSe

我正在使用SuiteTalk为基于NetSuite的应用程序创建后端。我正在计算销售订单中的商品总数

我的问题是,当执行搜索操作以获取所有SalesOrder时,返回的Record[]对象在使用Array.ConvertAll转换为SalesOrder[]时会失去精度。。。和手动。在我的例子中,这意味着在尝试访问itemList字段时获得一个Null引用异常

我的最终解决办法如下:

对于SearchResult SearchResult=\u service.searchsalesOrderSearch;searchResult.pageIndex SalesOrderitem; //为了避免null问题,请通过每个订单的内部ID为其发送get请求 SalesOrdersAll中的foreach SalesOrder salesOrderNull{ SalesOrder SalesOrder=getSalesOrdersalesOrderNull.internalId; //按项目总数递增计数 计数+=salesOrder.itemList.item.Length; } }否则{ string errorCodes=Helpers.generateErrorStringsearchResult.status.statusDetail; 抛出新的SuiteTalkServiceExceptioncount销售订单行。失败,错误代码+错误代码; } } 但是,这会对每个销售订单调用get请求,这意味着它需要一段时间,而且非常不雅观。有没有比这更优雅的解决方案?有没有其他人有过类似的问题,或者我是不是很笨

记录的类定义为:

公共抽象部分类记录{ 私有字符串[]nullFieldListField; /// [System.Xml.Serialization.XmlArrayItemAttributename,IsNullable=false] 公共字符串[]空字段列表{ 得到{ 返回this.nullFieldListField; } 设置{ this.nullFieldListField=值; } } }
SalesOrder的类定义是几千行代码,但定义相当清楚。

我已经找到了问题的答案


本质上,为了防止itemList字段变为null,必须将searchPreferences.bodyFieldsOnly字段设置为false。现在,这将在我的解决方案的十分之一时间内运行。

什么是失去精度?为什么你不能绘制地图?您可以发布SalesOrder和Record的类定义吗?在我的例子中,这意味着在尝试访问itemList字段时会出现空引用异常。解释我的意思会失去精确性。为了澄清,我的意思是有些字段变为空。我为Record添加了类定义,并为SalesOrder添加了SchemaBrowser条目