EntityFramework - как считать метадаты?
От: Аноним  
Дата: 16.07.09 14:04
Оценка:
Нужно определить имя контейнера для EDM-модели, также объекты и их параметры, которые там находятся. Как это можно сделать не рефлекшеном по сгенеренному коду, а по метаданным? Нашел MetadataWorkspace, но че-то там ничего особо интересного нету.
Как определить имя контейнера например, или имена доступных EntitySet-ов, или перебрать все сущности и определить какие из их свойств являются ключами? Это вообще можно сделать по метаданным?
Re: EntityFramework - как считать метадаты?
От: BOleg Россия  
Дата: 17.07.09 10:14
Оценка:
Здравствуйте, Аноним, Вы писали:

А> Нужно определить имя контейнера для EDM-модели, также объекты и их параметры, которые там находятся. Как это можно сделать не рефлекшеном по сгенеренному коду, а по метаданным? Нашел MetadataWorkspace, но че-то там ничего особо интересного нету.

А> Как определить имя контейнера например, или имена доступных EntitySet-ов, или перебрать все сущности и определить какие из их свойств являются ключами? Это вообще можно сделать по метаданным?

MetadataWorkspace хранит информацию о концептуальной модели DataSpace.CSpace (conceptual model) и модели базы данных DataSpace.SSpace (storage model). Информация о маппинге между ними пользователю не доступна (где-то читал, что инфа о маппинге станет доступна начиная с версии 4.0 дотнета, но в бете её не обнаружил).

Загрузить метаданные можно так:
var workspace=((EntityConnection)context.Connection).GetMetadataWorkspace();


Получать через
workspace.GetItems(...)

и т.п.
В человечишке все должно быть прекрасненьким: и одёжка, и душенка, и мордочка, и мыслишки.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.