Я использую библиотеку (Telerik) для ASP.NET MVC 3.
У меня проблема со всеми функциями, из-за которых AJAX должен возвращать некоторые данные:
I 'Я использую EF4 для подключения к моей базе данных, и у меня есть (и мне нужны) свойства навигации обоими способами (представьте, что у пользователя есть несколько сообщений и у одного сообщения есть пользователь).
Проблема в том, что библиотекаиспользует JavaScriptSerializer, который кодирует данные с помощью JSON.
Ошибка, которую я получаю
Обнаружена циклическая ссылка при сериализации объекта типа 'System.Data.Entity.DynamicProxies,, но ничего, что полностью удовлетворяло бы меня:
- Использовать привязку сервера данных: не может, функциональность должна работать в ajax (это пейджер для сетки, which загружает следующие элементы, когда страница прокручивается до конца)
- Использовать анонимные объекты: не гибкий, потому что, если у меня есть поле в базе данных, я должен добавить его во все свои анонимныеобъект, и, кроме того, если мне нужно иметь подколлекцию, которую я хочу, скучно также создавать объекты для всех элементов этого подсписка.
- Использовать ViewModel: почти такая же проблема, если она у меня есть.больше поля, я должен добавить эти поля во все viewModel, и я должен создать модель представления для всех моих 60 видов, с точно такими же полями, что и моя модель, ...
- Использовать атрибут NonSerializedAttribute:Я не знаю, как вставить в мой шаблон T4, который генерирует мои объекты POCO, и я не уверен, что это сработает: иногда главный объект - это дети, иногда - родитель, пустые отношения должны быть другими.
У меня была почти такая же проблема с WCF, и я создал сериализованный, который знает, как обрабатывать циклические ссылки, можем ли мы сделать то же самое здесь?Или есть способ управлять этим?
Если нет, я полагаю, что лучший способ - это использовать "ViewModel", но есть ли способ ускорить это создание?Как универсальный объект, который принимает в конструкторе объект EF и удаляет циклическую ссылку?что-нибудь еще?
Большое спасибо