繁体   English   中英

Commerce Server 2007 OrderObjectMappings定义错误

[英]Commerce Server 2007 OrderObjectMappings definition error

我正在向我的PurchaseOrder对象添加3个新属性,并经历了将3个新列添加到数据库表,更新PurchaseOrder类以及最后OrderObjectMappings.xml文件的过程,以确保该类中的属性正确映射到数据库。 一切似乎正确,但是当商务服务器尝试映射时,出现以下错误:

[MappedClassDataMismatchException:表PurchaseOrders列ConcessionOrder与映射中定义的预期列名MarshalledData不匹配。
Microsoft.CommerceServer.Runtime.Orders.POLoader.LoadFromDataSetHelper(DataSet dataSet,ClassInfo [] dependencyClassList,Int32 depClassListLen,Hashtable [] depInstanceLookup,BinaryFormatter formatter,String filter)+3406
Microsoft.CommerceServer.Runtime.Orders.POLoader.LoadFromDataSet(数据集dataSet,OrderGroupCollection ogColl)+1080
Microsoft.CommerceServer.Runtime.Orders.POLoader.LoadSearchSet(Guid searchSetId,OrderGroupCollection ogc)+388
Microsoft.CommerceServer.Runtime.Orders.POLoader.Load(字符串storedProcName,ListDictionary sqlParameters)+458
Microsoft.CommerceServer.Runtime.Orders.OrderContext.GetPurchaseOrdersForUser(Guid用户ID)+352

ConcessionOrder是我的新属性之一,并且正确显示在xml文件中。 有谁知道发生这种情况的任何明显原因,也许是我错过的东西,或者其他地方的情况?

干杯,约翰

您可能要检查是否已更新OrderObjectMappings.xml中的所有位置

例如在这个节点

<ClassTableMap Class="PurchaseOrder" Table="PurchaseOrders">

其中一个

<PropertyMap ... /> 

线可能是错的?

OrderObjectMapping.xml文件的StorageMap根元素具有3个子元素,这些子元素处理表与类之间以及表列与类属性之间的映射。

表节点

Tables元素将每个子Table元素映射到一个物理数据库表。 每个子Column元素都映射到一个物理数据库字段。

班级节点

Classes元素包含与每个Commerce Server 2007 API类相对应的子Class元素。 现成的属性和您对属性列表的扩展都作为子Property元素存在。

映射节点

Mappings元素负责将Tables元素中的每个子Table元素映射到Classes元素的子Class元素。 该元素驱动物理数据库表及其列到该类的类和子属性的映射。

为了扩展OrderObjectMapping.xml文件中的PurchaseOrder设置以包括新的“ ConcessionOrder ”属性,您的文件将需要包含对TablesClasssMappings元素的修改,如下所示。

注意:我假设您正在使用位字段来建模布尔ConcessionOrder属性...

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM