public static List<PlotDO> ReadyByUnitStratum(DatastoreRedux dal, String unit, String stratum)
        {
            if (dal == null) { return null; }
            if (String.IsNullOrEmpty(unit))
            {
                return dal.From<PlotDO>()
                    .Join("Stratum", "USING (Stratum_CN)")
                    .Where("Stratum.Code = ?")
                    .Read(stratum).ToList();

                //.Read<PlotDO>("JOIN Stratum WHERE Plot.Stratum_CN = Stratum.Stratum_CN AND Stratum.Code = ?;", (object)stratum);
            }
            else if (String.IsNullOrEmpty(stratum))
            {
                return dal.From<PlotDO>()
                    .Join("CuttingUnit", "USING (CuttingUnit_CN)")
                    .Where("CuttingUnit.Code = ?")
                    .Read(unit).ToList();

                //.Read<PlotDO>("JOIN CuttingUnit WHERE Plot.CuttingUnit_CN = CuttingUnit.CuttingUnit_CN AND CuttingUnit.Code = ?;", (object)unit);
            }
            return dal.From<PlotDO>()
                .Join("CuttingUnit", "USING (CuttingUnit_CN)")
                .Join("Stratum", "USING (Stratum_CN)")
                .Where("CuttingUnit.Code = ? AND Stratum.Code = ?")
                .Read(unit, stratum).ToList();

            //.Read<PlotDO>("JOIN CuttingUnit JOIN Stratum WHERE Plot.CuttingUnit_CN = CuttingUnit.CuttingUnit_CN AND CuttingUnit.Code = ? AND Plot.Stratum_CN = Stratum.Stratum_CN AND Stratum.Code = ?;", (object)unit, stratum);
        }
 protected override void OnDALChanged(DatastoreRedux newDAL)
 {
     base.OnDALChanged(newDAL);
     if (_treeAuditValueCollection != null)
     {
         _treeAuditValueCollection.DAL = newDAL;
     }
 }
 protected override void OnDALChanged(DatastoreRedux newDAL)
 {
     base.OnDALChanged(newDAL);
     if (_TreeDefaultValueStats != null)
     {
         _TreeDefaultValueStats.DAL = newDAL;
     }
 }
        public int DeleteStratumStats(DatastoreRedux dal, long? StratumStats_CN)
        {
            //Delete sample group stats for stratum
            var allSGStatsInStratumStats = dal.From<SampleGroupStatsDO>()
                 .Where("StratumStats_CN = ?")
                 .Read(StratumStats_CN).ToList();

               foreach (SampleGroupStatsDO SgStats in allSGStatsInStratumStats)
               {
              SgStats.Delete();
               }

               Delete();

               return (0);
        }
		public CuttingUnitStratumDO(DatastoreRedux DAL) : base(DAL)
		{}
		public TreeCalculatedValuesDO(DatastoreRedux DAL) : base(DAL)
		{}
		public QualityAdjEquationDO(DatastoreRedux DAL) : base(DAL)
		{}
		public BiomassEquationDO(DatastoreRedux DAL) : base(DAL)
		{}
		public VolumeEquationDO(DatastoreRedux DAL) : base(DAL)
		{}
		public FixCNTTallyPopulationDO(DatastoreRedux DAL) : base(DAL)
		{}
		public MessageLogDO(DatastoreRedux DAL) : base(DAL)
		{}
		public ErrorLogDO(DatastoreRedux DAL) : base(DAL)
		{}
		public ForestsDO(DatastoreRedux DAL) : base(DAL)
		{}
		public RegionsDO(DatastoreRedux DAL) : base(DAL)
		{}
		public UOMCodesDO(DatastoreRedux DAL) : base(DAL)
		{}
		public TreeEstimateDO(DatastoreRedux DAL) : base(DAL)
		{}
		public FixCNTTallyClassDO(DatastoreRedux DAL) : base(DAL)
		{}
		public GlobalsDO(DatastoreRedux DAL) : base(DAL)
		{}
		public SaleDO(DatastoreRedux DAL) : base(DAL)
		{}
		public ComponentDO(DatastoreRedux DAL) : base(DAL)
		{}
		public StratumDO(DatastoreRedux DAL) : base(DAL)
		{}
		public TreeDefaultValueDO(DatastoreRedux DAL) : base(DAL)
		{}
		public ValueEquationDO(DatastoreRedux DAL) : base(DAL)
		{}
		public SampleGroupTreeDefaultValueDO(DatastoreRedux DAL) : base(DAL)
		{}
		public ReportsDO(DatastoreRedux DAL) : base(DAL)
		{}
		public PlotDO(DatastoreRedux DAL) : base(DAL)
		{}
		public LCDDO(DatastoreRedux DAL) : base(DAL)
		{}
		public CountTreeDO(DatastoreRedux DAL) : base(DAL)
		{}
		public PRODO(DatastoreRedux DAL) : base(DAL)
		{}
		public TallyDO(DatastoreRedux DAL) : base(DAL)
		{}