2014-10-09 46 views
0

我有一個System.DateTime的CreatedDate成員,該成員的默認值爲Today(沒有時間組件)。此外,「今日」的「日期」值被高速緩存,並且是應用程序啓動的日期。如果重新啓動進程,通常不會造成問題,但在長時間運行的Windows服務中使用時,此Date值會過時。DevForce 2012中DateTime的默認值

例如:

從我的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在創建該屬性時會設置一次,然後在構建ServiceRequest實例時用於填充CreatedDate的默認值。要解決此問題,您可以將CreatedDate設置爲您的SerivceRequest構造函數或工廠創建這些對象所需的任何值。

+0

好吧,那就是我正在做的。 – GenuineRex 2014-10-10 03:25:17