É possível impedir que o EntityFramework 4 substitua propriedades personalizada
Estou usando o EF 4 Database primeiro + POCOs. Como a EF não tem uma maneira fácil de afirmar que os DateTimes recebidos são do tipo UTC, movi a propriedade do arquivo gerado automaticamente para uma classe parcial em outro arquiv
private DateTime _createdOn;
public virtual System.DateTime CreatedOn
{
get { return _createdOn; }
set
{
_createdOn =
(value.Kind == DateTimeKind.Unspecified)
? _createdOn = DateTime.SpecifyKind(value, DateTimeKind.Utc)
: value;
}
}
No entanto, agora, toda vez que atualizo o modelo, as propriedades automatizadas são criadas novamente na geração T4. Obviamente, isso causa o seguinte erro de compilação: "O tipo 'Foo' já contém uma definição para 'CreatedOn'".
Existe alguma maneira de dizer à EF para não gerar essa propriedade e me permitir lidar com ela sozinh
Atualiza
Obrigado pelas respostas de todos ...
Criei uma nova propriedade customizada com um nome diferent
public virtual System.DateTime CreatedOnUtc
{
get
{
return (CreatedOn.Kind==DateTimeKind.Unspecified)
? DateTime.SpecifyKind(CreatedOn, DateTimeKind.Utc)
: CreatedOn;
}
set
{
CreatedOn =
(value.Kind == DateTimeKind.Unspecified)
? CreatedOn = DateTime.SpecifyKind(value, DateTimeKind.Utc)
: value;
}
}
Também defino todos os setters e getters da propriedade gerada automaticamente como Private, com exceção das propriedades que eu precisava usar em uma consulta Linq to Entities (suspiro). Nesses casos, defino esses getters como interno
Eu gostaria que houvesse uma lista suspensa nos tipos DateTime para especificar qual "Tipo" de DateTime o EF deveria tratá-lo. Isso economizaria horas e a complicação extr