DevForce 2012中DateTime的默认值
本文关键字:默认值 DateTime 2012 DevForce | 更新日期: 2023-09-27 18:26:02
我有一个实体,其System.DateTime-CreatedDate成员的默认值为Today(没有时间组件)。此外,还会缓存Today的Date值,它是应用程序启动的日期。如果重新启动进程,通常不会有问题,但在长期运行的Windows服务中使用时,此日期值会过时。
示例:
从我的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
我通过手动将我的电脑时钟设置为明天,就在呼叫新电话之前,验证了这一点。
这是有记录的和预期的吗,还是有补丁,或者这是一个新发现的bug?
ServiceRequest.PropertyMetada.CreatedDate.DefaultValue
在创建该属性时设置一次,然后在构造ServiceRequest实例时用于填充CreatedDate的默认值。若要解决此行为,您可以将CreatedDate设置为创建这些对象的ServceRequest构造函数或工厂中所需的任何值。