public ClsCustomer_ShippingAddress(ClsSysCurrentUser CurrentUser)
        {
            ClsQueryCondition Qc = new ClsQueryCondition();
            Qc.Add("IsDeleted", "0", "0");
            base.Setup("Customer_ShippingAddress", "uvw_Customer_ShippingAddress", Qc);

            //[-]

            List<Do_Constants.Str_ForeignKeyRelation> FetchKeys = new List<Do_Constants.Str_ForeignKeyRelation>();
            FetchKeys.Add(new Do_Constants.Str_ForeignKeyRelation("CustomerID", "CustomerID"));

            List<Do_Constants.Str_ForeignKeyRelation> ForeignKeys = new List<Do_Constants.Str_ForeignKeyRelation>();
            ForeignKeys.Add( new Do_Constants.Str_ForeignKeyRelation("AddressID", "AddressID"));

            base.Setup_AddListObject(
                "Address"
                , new ClsAddress(null)
                , new List<object>() { CurrentUser }
                , "uvw_Address_Customer_ShippingAddress"
                , FetchKeys
                , ForeignKeys);
        }
 /// <summary>
 /// Returns the Result Set Count with out actually fetching the result set,
 /// mainly used for pagination
 /// </summary>
 /// <param name="Condition">
 /// ClsQueryCondition Object to be used in fetching the data
 /// </param>
 /// <returns></returns>
 public virtual Int64 List_Count(ClsQueryCondition Condition = null)
 {
     return this.mDa.List_Count(this.mHeader_ViewName, Condition);
 }
 /// <summary>
 /// Returns a List based on the supplied Table/View Name
 /// </summary>
 /// <param name="Condition">
 /// ClsQueryCondition Object to be used in fetching the data
 /// </param>
 /// <param name="Sort">
 /// Additional sorting to be used in fetching the data
 /// </param>
 /// <param name="Top">
 /// Limits the result set, mainly used for pagination
 /// </param>
 /// <param name="Page">
 /// Fetch a section of the result set based on the supplied Top, mainly used for pagination
 /// </param>
 /// <returns></returns>
 public virtual DataTable List(ClsQueryCondition Condition, string Sort = "", Int32 Top = 0, Int32 Page = 0)
 {
     return this.mDa.List(this.mHeader_ViewName, Condition, Sort, Top, Page);
 }
 /// <summary>
 /// Not Implemented, use Me.Load()
 /// </summary>
 /// <param name="Condition"></param>
 /// <param name="Sort"></param>
 /// <param name="Top"></param>
 /// <param name="Page"></param>
 /// <returns></returns>
 public override DataTable List(ClsQueryCondition Condition = null, string Sort = "", int Top = 0, int Page = 0)
 {
     throw new NotImplementedException();
 }
 /// <summary>
 /// Sets the data object definition, 
 /// must be set preferably in the constructor of the derived object
 /// </summary>
 /// <param name="TableName">
 /// Table Name of the data object will be using
 /// </param>
 /// <param name="ViewName">
 /// View Name of the data object 
 /// this will be used Me.Load() if supplied
 /// </param>
 /// <param name="Qc_LoadCondition"></param>
 public virtual void Setup(string TableName, string ViewName = "", ClsQueryCondition Qc_LoadCondition = null)
 {
     base.Setup(TableName, ViewName);
     this.mQc_LoadCondition = Qc_LoadCondition;
 }