/// <summary> /// 获取IDataReader转Entity委托方法 /// </summary> /// <param name="reader"></param> /// <returns></returns> public DataReaderDeserializer GetDataReaderDeserializer(System.Data.IDataReader reader) { if (deserializer == null) { deserializer = TypeDeserializerEmit.CreateDataReaderDeserializer(this, reader); } return(deserializer); }
public static TReturn QueryFirst <TReturn>(DbDataReader reader, DataReaderDeserializer dataReaderDeserializer) { if (reader.Read() == false) { ThrowException.SequenceContainsNoElements(); } return(dataReaderDeserializer.Deserialize <TReturn>(reader)); }
protected TEntity protectedFirstOrDefault(IDataProvider dataProvider) { TEntity obj = null; SqlStatement sqlStatement = DbSqlFactories.BuildSelectSqlStatement(dataProvider.DatabaseContext.DbTranslator, this.entityInfo, whereExpr, order); dataProvider.ExecuteReader(sqlStatement, delegate(IDataReader dr) { while (dr.Read()) { DataReaderDeserializer deserializer = entityInfo.GetDataReaderDeserializer(dr); obj = (TEntity)deserializer(dr); break; } }); return(obj); }
protected IList <TEntity> protectedSelect(IDataProvider dataProvider) { var ret = new System.ComponentModel.BindingList <TEntity>(); SqlStatement sqlStatement = DbSqlFactories.BuildSelectSqlStatement(dataProvider.DatabaseContext.DbTranslator, this.entityInfo, whereExpr, range, order); dataProvider.ExecuteReader(sqlStatement, delegate(IDataReader dr) { while (dr.Read()) { DataReaderDeserializer deserializer = entityInfo.GetDataReaderDeserializer(dr); do { ret.Add((TEntity)deserializer(dr)); }while (dr.Read()); } }); return(ret); }
public static TReturn QueryFirstOrDefault <TReturn>(DbDataReader reader, DataReaderDeserializer dataReaderDeserializer) { if (reader.Read() == false) { return(default);