/// <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); }
public IResultMap ResolveSubMap(IDataReader dataReader) { IResultMap subMap = this; if (this._discriminator == null) { return(subMap); } object dataBaseValue = this._discriminator.ResultProperty.GetDataBaseValue(dataReader); if (dataBaseValue != null) { subMap = this._discriminator.GetSubMap(dataBaseValue.ToString()); if (subMap == null) { return(this); } if (subMap != this) { subMap = subMap.ResolveSubMap(dataReader); } return(subMap); } return(_nullResultMap); }