public abstract class TaskBasic
{
       public int _ProjectClass;
       [DisplayName("項目級別")]
        public int ProjectClass
        {
            get
            {
                return _ProjectClass;
            }
            set
            {
                _ProjectClass=value;
            }
        }
        //定義一個集合
        [Association("Master-Detl"), Aggregated]
        public XPCollection<ProjectTask> Detl
        {
            get
            {
                return GetCollection<ProjectTask>("Detl");
            }
        }
}
public class ProjectTask : TaskBasic
{
       private TaskBasic _ParentProjectNo;
        [Association("Master-Detl")]
        public TaskBasic ParentProjectNo
        {
            get
            {
                return _ParentProjectNo;
            }
            set
            {
                _ParentProjectNo=value;
            }
        }       
       ProjectClass=ParentProjectNo.ProjectClass+1;--->>>>>運行到這ParentProjectNo.ProjectClass就出錯了,未将对象引用设置到对象的实例
}

解决方案 »

  1.   

    補充下問題,ProjectClass=ParentProjectNo.ProjectClass+1;這句實在創建的新的ProjectTask 對象時報錯,public override void AfterConstruction()
            {
                base.AfterConstruction();
                ProjectClass=ParentProjectNo.ProjectClass+1
            }
      

  2.   

    你的ParentProjectNo都没实例化,当然报错...public class ProjectTask : TaskBasic
    {
      public ProjectTask()
      {
        this.ParentProjectNo = new ProjectTask();实例化
      }
      private TaskBasic _ParentProjectNo;
      [Association("Master-Detl")]
      public TaskBasic ParentProjectNo
      {
        get
        {
          return _ParentProjectNo;
        }
        set
        {
          _ParentProjectNo=value;
        }
      }
    }