2014-10-09 3 views
0

У меня есть объект с членом System.DateTime CreatedDate, который получает значение по умолчанию Today (без времени). Кроме того, значение Date для Today кэшируется и является датой запуска приложения. Обычно не проблема при перезапуске процесса, но при использовании в долгосрочной перспективе Windows Service значение этой даты становится устаревшим.Значение по умолчанию для DateTime в DevForce 2012

пример:

С моей EDMX

/// <summary>Gets or sets the CreatedDate. </summary> 
[DataMember] 
[Bindable(true, BindingDirection.TwoWay)] 
[Editable(true)] 
[Display(Name="CreatedDate", AutoGenerateField=true)] 
[IbVal.RequiredValueVerifier(ErrorMessageResourceName="ServiceRequest_CreatedDate")] 
public System.DateTime CreatedDate { 
    get { return PropertyMetadata.CreatedDate.GetValue(this); } 
    set { PropertyMetadata.CreatedDate.SetValue(this, value); } 
} 

В кодексе

 var request = new ServiceRequest(); 

     // request.CreatedDate will be the date the app started not a new call to DateTime.Now or DateTime.Today 

Я проверил это вручную установив мой компьютер часы на завтра прямо перед вызовом нового ,

Является ли это документированным и ожидаемым или есть патч или это вновь найденная ошибка?

ответ

0

DevForce присваивает каждому недействующему объекту DataEntityProperty значение DefaultValue, когда этот объект свойства создается, и использует это значение по умолчанию при инициализации каждого объекта сущности. Это означает, что ServiceRequest.PropertyMetada.CreatedDate.DefaultValue устанавливается один раз, когда это свойство создается, а затем используется для заполнения значения по умолчанию для CreateDate при создании экземпляра ServiceRequest. Чтобы обойти это поведение, вы можете установить CreateDate на любое значение, необходимое в вашем конструкторе SerivceRequest или на заводе, создающем эти объекты.

+0

OK, это то, что я делаю. – GenuineRex