Вы также можете изменить свой шаблон T4 (файл .tt), чтобы добавить частичный метод, который вы вызываете из сгенерированного конструктора.Затем вы можете создать свой собственный частичный класс, реализовать частичный метод и установить значение по умолчанию.
Фрагмент из шаблона T4, в котором создается конструктор, за которым следует частичный метод.Обратите внимание на последние три строки:
public <#=code.Escape(entity)#>()
{
<#
foreach (var edmProperty in propertiesWithDefaultValues)
{
#>
this.<#=code.Escape(edmProperty)#> = =code.CreateLiteral(edmProperty.DefaultValue)#>;
<#
}
foreach (var navigationProperty in collectionNavigationProperties)
{
#>
this.<#=code.Escape(navigationProperty)#> = new HashSet<<#=code.Escape(navigationProperty.ToEndMember.GetEntityType())#>>();
<#
}
foreach (var complexProperty in complexProperties)
{
#>
this.<#=code.Escape(complexProperty)#> = new <#=code.Escape(complexProperty.TypeUsage)#>();
<#
}
#>
SetDefaultValues();
}
partial void SetDefaultValues();
Это приведет к тому, что сгенерированная сущность будет иметь что-то вроде:
public Foo()
{
// Properties set based on defaults in edmx
SetDefaultValues();
}
partial void SetDefaultValues();
Затем в вашем частичном классе вы можете просто добавить что-то вроде:
partial void SetDefaultValues()
{
this.SomeDate = DateTime.Today;
}