2012-04-13 4 views
0

Мы пытаемся перенести наше приложение SAAS по существу на windows azure, и мы использовали партию Entity Framework специально для модуля. В качестве части миграции мы пытаемся перенести и протестировать приложение поэтапно. Мы пытаемся использовать службу кэширования приложений Azure в качестве поставщика состояния сеанса.Проблемы с динамическими прокси-серверами EF, когда Azure Appfabric Cache используется как поставщик состояния сеанса.

Когда я пытаюсь настроить состояние сеанса в кэш-памяти приложения, мы сталкиваемся с этими проблемами, связанными с инфраструктурой Entity, pls видит ошибку № 2. Сначала мы получили эту ошибку: 1. Чтобы исправить эту проблему, у нас есть класс как [DataContract], и проблема решена.

Ошибка № 1. System.Runtime.Serialization.InvalidDataContractException: Тип «XX.XX.XXX» не может быть сериализован. Подумайте о том, чтобы маркировать его атрибутом DataContractAttribute и маркировать все его элементы, которые вы хотите сериализовать с атрибутом DataMemberAttribute. Если тип представляет собой коллекцию, рассмотрите ее маркировку с помощью CollectionDataContractAttribute. См. Документацию Microsoft .NET Framework для других поддерживаемых типов. не

ошибка нет 2. Свойства «AdXXXXXX» от типа «CaXXXXX_9FDDBE5B2C99F9C5DE2E0DCD2E8CC77D2CB59220D1A3413E91AF5A2B6A23026D» не может быть установлено, так как коллекция уже установлена ​​в EntityCollection.

Мы полностью потеряли, как исправить эти проблемы, и, когда googled в нескольких потоках, нам нужно удалить модификатор виртуального доступа для свойств. Но тот же код работает без каких-либо проблем, подобных этому на месте, и код генерируется автоматически EF при каждом обновлении модели. У нас также есть другой вариант перехода на SQLAzure как поставщика состояния сеанса во втором случае, но мы надеемся, что такие же проблемы могут возникнуть, поскольку данные должны быть сериализованы при сохранении в сеансе.

http://social.msdn.microsoft.com/forums/en/adonetefx/thread/99d8d4a1-5ab1-42dc-b9db-5087be02162d http://blog.iannelson.systems/entity-framework-week-part-3-runtime-issues-encountered/

Мы не используем отложенную загрузку и классы генерируются EF автоматически при обновлении модели из базы данных.

ответ

0

Не удалось удалить виртуальное ключевое слово из всех объектов, кроме тех, которые вы используете для ленивых свойств загрузки/навигации (то есть: удалить его из всех родных типов)?

Ссылка: Code First adding to collections? How to use Code First with repositories?

+0

Мы не используем отложенную загрузку и классы генерируются EF автоматически при обновлении модели из базы данных. Мы не имеем никакого контроля над классом, созданным EF. или нам нужно удалить виртуальные свойства вручную. – CSKR

+0

Нет, я бы не удалял виртуальное ключевое слово вручную. Не могли бы вы попытаться отключить отслеживание изменений: context.SomeTable.MergeOption = MergeOption.NoTracking; –

+0

Где мы можем добавить опцию MergeOption.NoTracking для таблиц, В основном мы пытались добавить в нее пропозиции, но все равно получаем ту же проблему. – CSKR

 Смежные вопросы

  • Нет связанных вопросов^_^