2013-06-06 7 views
3

У меня есть TPH (таблица на иерархию), установленная в Entity Framework, где я использую столбец с именем Discriminator для разделения разных EntityTypes.Получить значение дискриминатора от Entity в Entity Framework

I.e. когда дискриминатор равно 0, тип является Dog, если это 1 это Cat и т.д.

Теперь я хочу, чтобы переместить код для (масс) -Обновление от EF до обычая ExecuteSqlCommand.

Вопрос: Можно ли извлечь значение Дискриминатора из Тип через MetadataWorkspace или каким-либо другим способом?

Я смотрю на что-то вроде GetDiscriminatorValue<Cat>("ColumnName")

Если не представляется возможным: есть другой способ, так что я не должен жёстко эти значения где-то в моем коде?

Спасибо,

+0

Возможный Dupe http://stackoverflow.com/questions/4525953/can-i-access-the-discriminator-value-in-tph-mapping-with-entity-framework-4 -ctp5 – Paul

ответ

2

Я еще не пробовал, но мне кажется, что вы можете получить значение (и другие непубличные свойства) с помощью отражения и MetadataWorkSpace. Взгляните на этот пример: http://blog.cincura.net/231942-tph-mapping-discriminator-condition-from-metadataworkspace/

+1

Есть предположение, что условие всегда является строкой (в то время как мой был int), но для остальных это работает! :) Благодаря! –

Смежные вопросы