예제 #1
0
        public TEntity EndExecute(IAsyncResult ar)
        {
            var rs  = InternalEndExecute(ar);
            Row row = rs.GetRows().FirstOrDefault();

            if (row == null)
            {
                if (((MethodCallExpression)Expression).Method.Name == "First")
                {
                    throw new InvalidOperationException("Sequence contains no elements.");
                }
                else if (((MethodCallExpression)Expression).Method.Name == "FirstOrDefault")
                {
                    return(default(TEntity));
                }
            }

            CqlColumn[] cols     = rs.Columns;
            var         colToIdx = new Dictionary <string, int>();

            for (int idx = 0; idx < cols.Length; idx++)
            {
                colToIdx.Add(cols[idx].Name, idx);
            }

            var tag = (CqlQueryTag)Session.GetTag(ar);

            return(CqlQueryTools.GetRowFromCqlRow <TEntity>(row, colToIdx, tag.Mappings, tag.Alter));
        }
예제 #2
0
 internal IEnumerable <TEntity> AdaptRows(IEnumerable <Row> rows, Dictionary <string, int> colToIdx, CqlExpressionVisitor visitor)
 {
     foreach (Row row in rows)
     {
         yield return(CqlQueryTools.GetRowFromCqlRow <TEntity>(row, colToIdx, visitor.Mappings, visitor.Alter));
     }
 }
예제 #3
0
        public IEnumerable <TEntity> EndExecute(IAsyncResult ar)
        {
            using (var outp = InternalEndExecute(ar))
            {
                QueryTrace = outp.Info.QueryTrace;

                var cols     = outp.Columns;
                var colToIdx = new Dictionary <string, int>();
                for (int idx = 0; idx < cols.Length; idx++)
                {
                    colToIdx.Add(cols[idx].Name, idx);
                }
                var rows = outp.GetRows();
                var tag  = (CqlQueryTag)Session.GetTag(ar);
                foreach (var row in rows)
                {
                    yield return(CqlQueryTools.GetRowFromCqlRow <TEntity>(row, colToIdx, tag.Mappings, tag.Alter));
                }
            }
        }