Динамические запросы - Expando / Динамический тип объекта - PullRequest
0 голосов
/ 08 апреля 2011

Мне нужно запросить таблицы, которые не известны или не существуют во время компиляции, опубликовать таблицу через odata и затем сделать ее доступной для клиента silverlight для CRUD.

Было бы замечательно использовать PCO типа dynamic илиExpandoObject, чтобы добиться этого, но это, похоже, не работает (как и предполагалось).

Мне интересно, есть ли интерфейсы, которые позволили бы мне выполнять сопоставление типов и сериализацию на уровне строк, чтобы я динамически брал строку данных и возвращал ее значения на стороне сервера.Возможно, интерфейс для PCO, чтобы «помочь», или динмически созданный getter / setter свойства.Я также играю с динамическим созданием класса контекста во время выполнения, но это уродливо.

Затем - на стороне клиента, что-то сделать то же самое с фидом odata, у меня есть решение здесь, ноэто не достаточно, чтобы поделиться с миром.

1 Ответ

0 голосов
/ 09 апреля 2011

EF не предлагает никакого «динамического» подхода, а также простого способа, позволяющего создать новую таблицу и добавить ее в отображение.Другой вопрос - насколько хорошо WCF Data Services может работать с изменяющимися данными - я считаю, что они также не поддерживаются.

Если вы хотите, чтобы динамически изменяемая структура (добавленные таблицы, столбцы и т. Д.) Использовала некоторую модель метаданных вместо создания новой таблицы для каждой сущности.Модель метаданных обычно имеет что-то вроде таблицы с общими свойствами и связанной таблицы с парой ключ-значение атрибута имя и значение.Это может быть расширено до более сложных сценариев, но это единственный способ достичь этого.Вместо отображения в EF примите ваши типы сущности как данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...