コード例 #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="dataReader"></param>
        /// <returns></returns>
        public IResultMap ResolveSubMap(IDataReader dataReader)
        {
            IResultMap subMap = this;

            if (_discriminator != null)
            {
                ResultProperty mapping       = _discriminator.ResultProperty;
                object         dataBaseValue = mapping.GetDataBaseValue(dataReader);

                if (dataBaseValue != null)
                {
                    subMap = _discriminator.GetSubMap(dataBaseValue.ToString());

                    if (subMap == null)
                    {
                        subMap = this;
                    }
                    else if (subMap != this)
                    {
                        subMap = subMap.ResolveSubMap(dataReader);
                    }
                }
                else
                {
                    subMap = _nullResultMap;
                }
            }
            return(subMap);
        }