У меня есть комбинация служб RIA и nHibernate. nHibernate настроен на использование идентификации на стороне базы данных. Поэтому новые объекты отправляются с 0 для id. nHibernate работает так, как должно. Он обновляет сгенерированные ключи из базы данных и обновлений.Услуги RIA и nHibernate вставить новую проблему
У меня есть пример с композиционной иерархией. Моя сущность сложна, она имеет две коллекции.
InvestObject
- MaterialItems
- WorkItems
Я работаю с этой структурой в одной единице работы. Geting и показ данных в приложении Silverlight не проблема. Но если я пытаюсь добавить более одного элемента в коллекции MaterialItems на стороне клиента, при сохранении я получаю эту ошибку:
Submit operation failed. Invalid ChangeSet : Only one entry for a given entity instance can exist in the ChangeSet. at System.ServiceModel.DomainServices.Server.ChangeSet.ValidateChangeSetEntries(IEnumerable
1 changeSetEntries) at System.ServiceModel.DomainServices.Server.ChangeSet..ctor(IEnumerable
1 changeSetEntries)
Там есть быстрое решение на стороне клиента, просто сгенерировать фиктивные отрицательные идентификаторы, для материала , Это работает для RIA, и сохранение распространяется на сервер. Но затем nHibernate вызывает ошибку, так как он ожидает 0 для всех новых идентификаторов, а не для данного значения(). Так что это не нормально.
Наконец-то я обманул nHibernate, переведя все новые идентификаторы на 0. Но это не делает меня счастливым. Это грязное уродливое решение.
Пожалуйста, помогите