Пример #1
0
 /// <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);
 }
Пример #2
0
        public static TReturn QueryFirst <TReturn>(DbDataReader reader, DataReaderDeserializer dataReaderDeserializer)
        {
            if (reader.Read() == false)
            {
                ThrowException.SequenceContainsNoElements();
            }

            return(dataReaderDeserializer.Deserialize <TReturn>(reader));
        }
Пример #3
0
        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);
        }
Пример #4
0
        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);
        }
Пример #5
0
 public static TReturn QueryFirstOrDefault <TReturn>(DbDataReader reader, DataReaderDeserializer dataReaderDeserializer)
 {
     if (reader.Read() == false)
     {
         return(default);