// <fileinfo name="OrdersRow_Base.cs">
//      <copyright>
//          All rights reserved.
//      </copyright>
//      <remarks>
//          Do not change this source code manually. Changes to this file may 
//          cause incorrect behavior and will be lost if the code is regenerated.
//      </remarks>
//      <generator rewritefile="True" infourl="http://www.SharpPower.com">RapTier</generator>
// </fileinfo>

using System;

namespace MyCompany.MyProject.Db
{
    /// <summary>
    /// The base class for <see cref="OrdersRow"/> that 
    /// represents a record in the <c>Orders</c> table.
    /// </summary>
    /// <remarks>
    /// Do not change this source code manually. Update the <see cref="OrdersRow"/>
    /// class if you need to add or change some functionality.
    /// </remarks>
    public abstract class OrdersRow_Base
    {
        private int _orderID;
        private string _customerID;
        private int _employeeID;
        private bool _employeeIDNull = true;
        private System.DateTime _orderDate;
        private bool _orderDateNull = true;
        private System.DateTime _requiredDate;
        private bool _requiredDateNull = true;
        private System.DateTime _shippedDate;
        private bool _shippedDateNull = true;
        private int _shipVia;
        private bool _shipViaNull = true;
        private decimal _freight;
        private bool _freightNull = true;
        private string _shipName;
        private string _shipAddress;
        private string _shipCity;
        private string _shipRegion;
        private string _shipPostalCode;
        private string _shipCountry;

        /// <summary>
        /// Initializes a new instance of the <see cref="OrdersRow_Base"/> class.
        /// </summary>
        public OrdersRow_Base()
        {
            // EMPTY
        }

        /// <summary>
        /// Gets or sets the <c>OrderID</c> column value.
        /// </summary>
        /// <value>The <c>OrderID</c> column value.</value>
        public int OrderID
        {
            get { return _orderID; }
            set { _orderID = value; }
        }

        /// <summary>
        /// Gets or sets the <c>CustomerID</c> column value.
        /// This column is nullable.
        /// </summary>
        /// <value>The <c>CustomerID</c> column value.</value>
        public string CustomerID
        {
            get { return _customerID; }
            set { _customerID = value; }
        }

        /// <summary>
        /// Gets or sets the <c>EmployeeID</c> column value.
        /// This column is nullable.
        /// </summary>
        /// <value>The <c>EmployeeID</c> column value.</value>
        public int EmployeeID
        {
            get
            {
                if(IsEmployeeIDNull)
                    throw new InvalidOperationException("Cannot get value because it is DBNull.");
                return _employeeID;
            }
            set
            {
                _employeeIDNull = false;
                _employeeID = value;
            }
        }

        /// <summary>
        /// Indicates whether the <see cref="EmployeeID"/>
        /// property value is null.
        /// </summary>
        /// <value>true if the property value is null, otherwise false.</value>
        public bool IsEmployeeIDNull
        {
            get { return _employeeIDNull; }
            set { _employeeIDNull = value; }
        }

        /// <summary>
        /// Gets or sets the <c>OrderDate</c> column value.
        /// This column is nullable.
        /// </summary>
        /// <value>The <c>OrderDate</c> column value.</value>
        public System.DateTime OrderDate
        {
            get
            {
                if(IsOrderDateNull)
                    throw new InvalidOperationException("Cannot get value because it is DBNull.");
                return _orderDate;
            }
            set
            {
                _orderDateNull = false;
                _orderDate = value;
            }
        }

        /// <summary>
        /// Indicates whether the <see cref="OrderDate"/>
        /// property value is null.
        /// </summary>
        /// <value>true if the property value is null, otherwise false.</value>
        public bool IsOrderDateNull
        {
            get { return _orderDateNull; }
            set { _orderDateNull = value; }
        }

        /// <summary>
        /// Gets or sets the <c>RequiredDate</c> column value.
        /// This column is nullable.
        /// </summary>
        /// <value>The <c>RequiredDate</c> column value.</value>
        public System.DateTime RequiredDate
        {
            get
            {
                if(IsRequiredDateNull)
                    throw new InvalidOperationException("Cannot get value because it is DBNull.");
                return _requiredDate;
            }
            set
            {
                _requiredDateNull = false;
                _requiredDate = value;
            }
        }

        /// <summary>
        /// Indicates whether the <see cref="RequiredDate"/>
        /// property value is null.
        /// </summary>
        /// <value>true if the property value is null, otherwise false.</value>
        public bool IsRequiredDateNull
        {
            get { return _requiredDateNull; }
            set { _requiredDateNull = value; }
        }

        /// <summary>
        /// Gets or sets the <c>ShippedDate</c> column value.
        /// This column is nullable.
        /// </summary>
        /// <value>The <c>ShippedDate</c> column value.</value>
        public System.DateTime ShippedDate
        {
            get
            {
                if(IsShippedDateNull)
                    throw new InvalidOperationException("Cannot get value because it is DBNull.");
                return _shippedDate;
            }
            set
            {
                _shippedDateNull = false;
                _shippedDate = value;
            }
        }

        /// <summary>
        /// Indicates whether the <see cref="ShippedDate"/>
        /// property value is null.
        /// </summary>
        /// <value>true if the property value is null, otherwise false.</value>
        public bool IsShippedDateNull
        {
            get { return _shippedDateNull; }
            set { _shippedDateNull = value; }
        }

        /// <summary>
        /// Gets or sets the <c>ShipVia</c> column value.
        /// This column is nullable.
        /// </summary>
        /// <value>The <c>ShipVia</c> column value.</value>
        public int ShipVia
        {
            get
            {
                if(IsShipViaNull)
                    throw new InvalidOperationException("Cannot get value because it is DBNull.");
                return _shipVia;
            }
            set
            {
                _shipViaNull = false;
                _shipVia = value;
            }
        }

        /// <summary>
        /// Indicates whether the <see cref="ShipVia"/>
        /// property value is null.
        /// </summary>
        /// <value>true if the property value is null, otherwise false.</value>
        public bool IsShipViaNull
        {
            get { return _shipViaNull; }
            set { _shipViaNull = value; }
        }

        /// <summary>
        /// Gets or sets the <c>Freight</c> column value.
        /// This column is nullable.
        /// </summary>
        /// <value>The <c>Freight</c> column value.</value>
        public decimal Freight
        {
            get
            {
                if(IsFreightNull)
                    throw new InvalidOperationException("Cannot get value because it is DBNull.");
                return _freight;
            }
            set
            {
                _freightNull = false;
                _freight = value;
            }
        }

        /// <summary>
        /// Indicates whether the <see cref="Freight"/>
        /// property value is null.
        /// </summary>
        /// <value>true if the property value is null, otherwise false.</value>
        public bool IsFreightNull
        {
            get { return _freightNull; }
            set { _freightNull = value; }
        }

        /// <summary>
        /// Gets or sets the <c>ShipName</c> column value.
        /// This column is nullable.
        /// </summary>
        /// <value>The <c>ShipName</c> column value.</value>
        public string ShipName
        {
            get { return _shipName; }
            set { _shipName = value; }
        }

        /// <summary>
        /// Gets or sets the <c>ShipAddress</c> column value.
        /// This column is nullable.
        /// </summary>
        /// <value>The <c>ShipAddress</c> column value.</value>
        public string ShipAddress
        {
            get { return _shipAddress; }
            set { _shipAddress = value; }
        }

        /// <summary>
        /// Gets or sets the <c>ShipCity</c> column value.
        /// This column is nullable.
        /// </summary>
        /// <value>The <c>ShipCity</c> column value.</value>
        public string ShipCity
        {
            get { return _shipCity; }
            set { _shipCity = value; }
        }

        /// <summary>
        /// Gets or sets the <c>ShipRegion</c> column value.
        /// This column is nullable.
        /// </summary>
        /// <value>The <c>ShipRegion</c> column value.</value>
        public string ShipRegion
        {
            get { return _shipRegion; }
            set { _shipRegion = value; }
        }

        /// <summary>
        /// Gets or sets the <c>ShipPostalCode</c> column value.
        /// This column is nullable.
        /// </summary>
        /// <value>The <c>ShipPostalCode</c> column value.</value>
        public string ShipPostalCode
        {
            get { return _shipPostalCode; }
            set { _shipPostalCode = value; }
        }

        /// <summary>
        /// Gets or sets the <c>ShipCountry</c> column value.
        /// This column is nullable.
        /// </summary>
        /// <value>The <c>ShipCountry</c> column value.</value>
        public string ShipCountry
        {
            get { return _shipCountry; }
            set { _shipCountry = value; }
        }

        /// <summary>
        /// Returns the string representation of this instance.
        /// </summary>
        /// <returns>The string representation of this instance.</returns>
        public override string ToString()
        {
            System.Text.StringBuilder dynStr = new System.Text.StringBuilder(GetType().Name);
            dynStr.Append(':');
            dynStr.Append("  OrderID=");
            dynStr.Append(OrderID);
            dynStr.Append("  CustomerID=");
            dynStr.Append(CustomerID);
            dynStr.Append("  EmployeeID=");
            dynStr.Append(IsEmployeeIDNull ? (object)"<NULL>" : EmployeeID);
            dynStr.Append("  OrderDate=");
            dynStr.Append(IsOrderDateNull ? (object)"<NULL>" : OrderDate);
            dynStr.Append("  RequiredDate=");
            dynStr.Append(IsRequiredDateNull ? (object)"<NULL>" : RequiredDate);
            dynStr.Append("  ShippedDate=");
            dynStr.Append(IsShippedDateNull ? (object)"<NULL>" : ShippedDate);
            dynStr.Append("  ShipVia=");
            dynStr.Append(IsShipViaNull ? (object)"<NULL>" : ShipVia);
            dynStr.Append("  Freight=");
            dynStr.Append(IsFreightNull ? (object)"<NULL>" : Freight);
            dynStr.Append("  ShipName=");
            dynStr.Append(ShipName);
            dynStr.Append("  ShipAddress=");
            dynStr.Append(ShipAddress);
            dynStr.Append("  ShipCity=");
            dynStr.Append(ShipCity);
            dynStr.Append("  ShipRegion=");
            dynStr.Append(ShipRegion);
            dynStr.Append("  ShipPostalCode=");
            dynStr.Append(ShipPostalCode);
            dynStr.Append("  ShipCountry=");
            dynStr.Append(ShipCountry);
            return dynStr.ToString();
        }
    } // End of OrdersRow_Base class
} // End of namespace