/// <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); }