Как проверить тип данных свойства в объекте в файле шаблона T4 - PullRequest
9 голосов
/ 11 февраля 2011

Я настраиваю свой файл .tt в EF 4.0.Теперь, как часть настройки f, мне нужно добавить некоторый код к свойству при генерации класса POCO, если тип свойства Nullable<System.DateTime> или System.DateTime.Я не могу найти правильный синтаксис для сравнения.

У меня есть следующий код в файле .tt.

foreach (EdmProperty edmProperty in entity.Properties.Where(p => p.TypeUsage.EdmType is PrimitiveType && p.DeclaringType == entity))
{
bool isDefaultValueDefinedInModel = (edmProperty.DefaultValue != null);
//Here I need to check whether my edmProperty is Nullable<System.DateTime> or System.DateTime, so that I can insert custom code.
}

Пожалуйста, помогите.

Ответы [ 2 ]

12 голосов
/ 15 февраля 2011
  if (((PrimitiveType)edmProperty.TypeUsage.EdmType).
        PrimitiveTypeKind == PrimitiveTypeKind.DateTime && edmProperty.Nullable)
0 голосов
/ 11 февраля 2011

Регулярный чек:

if(edmproperty.GetType() == typeof(System.DateTime)){ }

Обнуляемый чек:

if(edmproperty != null && edmproperty.GetType() == typeof(Nullable<System.DateTime>))
...