Silverlight客户端验证

时间:2014-01-10 11:02:09

标签: validation xaml entity-framework-5 silverlight-5.0

我有一种特殊类型的验证要做。假设我有两个实体:tblExploitationSub(idExploitationSub, idSemaine, dateActivite)tblSemaine(idSemaine, Datedebut, DateFin)。我的目标是设置验证过程,以便在我填写idSemaine和dateActivite时检查此日期是否在Datedebut和DateFin之间。 顺便说一下,我正在使用生成xxxx.web.g.cs文件的Ado.net Entity Data Madel。我创建了一个新类,我想用它来修改属性dateActivite,如下所示:

namespace appGestMO.Web.Models
{
    /// <summary>
    /// Classe d'entité « tblExploitationSub ».
    /// </summary>
    public sealed partial class tblExploitationSub : Entity
    {

        /// <summary>
        /// Obtient ou définit la valeur « DateActivite ».
        /// </summary>
        [DataMember()]
        public DateTime DateActiviteValidation
        {
            get
            {
                return this._dateActivite;
            }
            set
            {
                if ((this._dateActivite != value))
                {
                    if ((this._tblSemaine == null))
                    {
                        this._tblSemaine = new EntityRef<tblSemaine>(this, "tblSemaine", this.FiltertblSemaine);
                    }
                    MessageBox.Show(this._tblSemaine.Entity.ToString());
                    if ((value < this.tblSemaine.DateDebut.Value) || (value > this.tblSemaine.DateFin.Value))
                    {
                        throw new ValidationException("Date Incorrecte!!!");
                    }
                    this.OnDateActiviteChanging(value);
                    this.RaiseDataMemberChanging("DateActivite");
                    this.ValidateProperty("DateActivite", value);
                    this._dateActivite = value;
                    this.RaiseDataMemberChanged("DateActivite");
                    this.OnDateActiviteChanged();
                }
            }
        }


    }    
}

但我收到了错误。有人可能有更好的解决方案。 感谢...

1 个答案:

答案 0 :(得分:0)

看起来像this.tblSemaine.DateDebut和this.tblSemaine.DateFin可以为空。当你到达检查日期范围的行时,你确定它们不是空的吗?如果this.tblSemaine.DateDebut为null,this.tblSemaine.DateDebut.Value将抛出NullReferenceException。