Просто быстрый вопрос по EF 5 с кодом. Как мне, во время выполнения, получить доступ к списку внешних ключей, которые существуют для определенного объекта, пожалуйста?Entity Framework 5: Получить список внешних ключей на объекте
Заранее спасибо
Просто быстрый вопрос по EF 5 с кодом. Как мне, во время выполнения, получить доступ к списку внешних ключей, которые существуют для определенного объекта, пожалуйста?Entity Framework 5: Получить список внешних ключей на объекте
Заранее спасибо
Вы можете перебирать коллекцию детской на материнской компании и сохранить идентификатор от каждого из дочерних организаций.
Не могли бы вы подробнее объяснить, что вы разместили выше? – Kobojunkie
Я думаю, что правильный способ обойти это без хаков - использовать Metadata Workspace.
Несколько быстрых указателей:
ObjectContext
свойства экземпляра производного DbContext
для извлечения его обернутой ObjectContext
экземпляра. Оттуда вы можете использовать свойство MetadataWorkspace
для извлечения экземпляра MetadataWorkSpace
.GetType
(например), чтобы получить EdmType
для вашего объекта.MetadataProperties
. Вы можете отфильтровать каждый объект MetadataProperty
в ReadOnlyMetadataCollection
, посмотрев на их BuiltInTypeKind
, значение которого должно быть BuiltInTypeKind.NavigationProperty
.Там могут быть и другие способы сделать это, например, каким-то образом извлечения коллекции EdmMember
объектов для объекта, а затем, глядя на их CLR Type
с помощью GetType
. Один из возможных типов - NavigationProperty
.
Отказ от ответственности: Не проверял это.
Я бы подумал, что это будет связано с каким-то взглядом на конфигурацию отображения, загруженную в модель, но, кроме этого, не имеет понятия. Просто из любопытства, почему вы хотите это сделать? –
На самом деле сущность не может иметь никаких внешних ключей, но в базе данных могут быть внешние ключи. Рассмотрим родительский объект с набором дочерних объектов, сопоставленный с 'WithMany()'. В этом случае будет создана таблица соединений, и дочерний объект не будет иметь никаких внешних ключей или свойств навигации. –
Я пытаюсь проверить свою модель и хотел бы автоматически удалять созданные внешние ключи после каждого теста. Я работаю с существующей базой данных и хочу убедиться, что я добавлю смысл в те тесты, которые я создаю. – Kobojunkie