Ошибка определения 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...