Ошибка определения OrderObjectMappings в Commerce Server 2007

Я добавляю 3 новых свойства в свой объект PurchaseOrder и прошел процесс добавления 3 новых столбцов в таблицу базы данных, обновил класс PurchaseOrder и, наконец, файл OrderObjectMappings.xml, чтобы правильно обеспечить свойства в карте классов для базы данных., Все выглядит правильно, но я получаю следующую ошибку при попытке сопоставления коммерческим сервером:

[MappedClassDataMismatchException: таблица PurchaseOrders столбца ConcessionOrder не соответствует ожидаемому имени столбца MarshalledData, определенному в сопоставлении.]
Microsoft.CommerceServer.Runtime.Orders.POLoader.LoadFromDataSetHelper (DataSet dataSet, ClassInfo [] dependencyClassList, Int32 depClassListLen, Hashtable [] depInstanceLookup, средство форматирования BinaryFormatter, фильтр строк) +3406
Microsoft.CommerceServer.Runtime.Orders.POLoader.LoadFromDataSet (DataSet dataSet, OrderGroupCollection ogColl) +1080
Microsoft.CommerceServer.Runtime.Orders.POLoader.LoadSearchSet (Guid searchSetId, OrderGroupCollection ogc) +388
Microsoft.CommerceServer.Runtime.Orders.POLoader.Load (хранится в строке ProcName, ListDictionary sqlParameters) +458
Microsoft.CommerceServer.Runtime.Orders.OrderContext.GetPurchaseOrdersForUser (Guid userId) +352

ConcessionOrder - это одно из моих новых свойств, которое отображается правильно в файле XML. Кто-нибудь знает какую-либо очевидную причину, по которой это может происходить, что-то, что я пропустил, возможно, другое место в другом месте?

Ура, Джон

2 ответа

Возможно, вы захотите проверить, что вы обновили все местоположения в OrderObjectMappings.xml

Например, в этом узле

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

один из

<PropertyMap ... /> 

линии могут быть неправильными?

Корневой элемент StorageMap файла OrderObjectMapping.xml содержит 3 дочерних элемента, которые обрабатывают сопоставления между таблицами и классами, а также между столбцами таблицы и свойствами класса.

СТОЛОВЫЙ УЗЕЛ

Элемент Tables отображает каждый дочерний элемент Table в физическую таблицу базы данных. Каждый дочерний элемент Column сопоставляется с физическим полем базы данных.

КЛАССЫ УЗЕЛ

Элемент Classes содержит дочерний элемент Class, который соответствует каждому классу API Commerce Server 2007. Свойства "из коробки" и ваши расширения списка свойств существуют как дочерние элементы Property.

КАРТОЧКИ УЗЕЛ

Элемент Mappings отвечает за сопоставление каждого дочернего элемента Table в элементе Tables с дочерним элементом Class элемента Classes. Этот элемент управляет сопоставлением физической таблицы базы данных и ее столбцов с классом и дочерними свойствами этого класса.

Чтобы расширить настройку PurchaseOrder в файле OrderObjectMapping.xml, включив в нее новое свойство "ConcessionOrder", ваш файл должен содержать изменения в элементах таблиц, классов и сопоставлений, как показано ниже.

ПРИМЕЧАНИЕ. Я предположил, что вы используете битовое поле для моделирования логического свойства ConcessionOrder...

введите описание изображения здесь

Другие вопросы по тегам