Мне нужно обновить существующий сайт, основанный на DDS, поверх Entity Framework, и он использует три разные модели баз данных из трех разных баз данных.И для этого нужно простое дополнение к странице ListDetails: кнопка экспорта в XML ...
Добавить кнопку легко.Создание XML тоже не сложно.Задача состоит в том, чтобы получить правильную таблицу для экспорта, просмотреть все записи и поля и сгенерировать XML на основе любой из 100+ таблиц в системе!
Итак, моя кнопка вызывает обработчик экспорта (ashx), который генерирует XMLна основе таблицы, чье имя он получает через свои параметры.Код, который у меня есть, выглядит примерно так:
Content_CobaEntities Coba = new Content_CobaEntities();
MetadataWorkspace metadataWorkspace = Coba.MetadataWorkspace;
EntityContainer container = metadataWorkspace.GetItems<EntityContainer>(DataSpace.CSpace).First();
string namespaceName = metadataWorkspace.GetItems<EntityType>(DataSpace.CSpace).First().NamespaceName;
EntitySetBase entitySetBase = container.BaseEntitySets.FirstOrDefault(set => set.ElementType.Name == Entity);
К сожалению, это работает только с одним контекстом, а у меня три.(Но этот является основным контекстом.) (Кроме того, второй параметр может использоваться для определения правильного контекста.) И хотя он позволяет мне определить необходимый тип сущности, он все равно не предоставит мне доступ к его записям.и поля.
Итак, как мне получить данные для этой сущности?(Фильтры не важны; экспорт вернет все данные.)
И нет, EF4 нет.Нет .NET 4. Это более старый проект VS2008, и его нельзя много изменить, и его нельзя обновить ...
По сути, строка запроса содержит два параметра: ContextID и QueryID.ContextID сообщает мне, какой контекст использовать, и так как у меня есть только три различных контекста, простая команда switch решает это для меня.Но один из контекстов содержит более 60 запросов, каждый из которых связан с одной таблицей базы данных.Сайт динамических данных предоставляет мне возможность добавлять, редактировать и удалять записи из этой таблицы, но его необходимо экспортировать в формате, определяемом моим пользовательским кодом.Но с 60 таблицами слишком сложно написать оператор switch для каждого запроса, поэтому мне нужно что-то более общее.