繁体   English   中英

DevForce 2012中DateTime的默认值

[英]Default value for DateTime in DevForce 2012

我有一个具有System.DateTime CreatedDate成员的实体,该成员的默认值是Today(无时间分量)。 另外,“今天”的“日期”值将被缓存,并且是应用程序启动的日期。 如果重新启动进程,通常不会有问题,但是在长时间运行的Windows服务中使用时,此Date值会过时。

例:

从我的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

我通过在致电新电话之前将计算机时钟手动设置为明天来验证了这一点。

是否已记录和预期此文件,是否有补丁程序或这是新发现的错误?

在创建该属性对象时,DevForce会为每个非空DataEntityProperty分配一个DefaultValue,并在初始化每个实体对象时使用此默认值。 这意味着在创建该属性时,将设置一次ServiceRequest.PropertyMetada.CreatedDate.DefaultValue ,然后在构造ServiceRequest实例时将其用于填充CreatedDate的默认值。 要变通解决此问题,您可以将CreatedDate设置为SerivceRequest构造函数或工厂创建这些对象所需的任何值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM