2016-01-15 4 views
1

Я использую EF6 с Oracle через ODP.NET. И мне нужно (и я не могу его изменить), что все объекты db будут в верхнем регистре.Простой способ настройки имени столбца дискриминатора

Я добавил несколько условностей, и теперь у меня есть все таблицы, столбцы, внешние ключи и т. Д. В верхнем регистре. Все, кроме столбца дискриминатора, которые генерируются EF для двух иерархий TPH.

Мой вопрос в том, как я могу сказать EF, чтобы переименовать этот столбец? Я знаю способ с синтаксисом Requires(...).HasValue(...), но я не хочу указывать значение дискриминатора для каждого типа (и для каждой новой иерархии в будущем). Я доволен значениями по умолчанию, просто хочу переименовать столбец.

+0

Пожалуйста, см [ "Должны ли вопросы включают„метки“? В своих названиях"] (http://meta.stackexchange.com/questions/19190/should-questions-include-tags-in-their-titles), где консенсус «нет, они не должны»! –

ответ

0

После конвенции решить мою проблему (найденный here):

public class UpperCaseDiscriminatorConvention : IStoreModelConvention<EdmProperty> 
{ 
    public void Apply(EdmProperty property, DbModel model) 
    { 
     if (property.Name == "Discriminator") 
     { 
      property.Name = "DISCRIMINATOR"; 
     } 
    } 
}