private static RawQuery QueryCore(this Read <QueryChannel <Query> > s, LambdaExpression expr, params Type[] usedTypes) { var rt = s.Aspect(); rt.Tooling.ThrowCheckTypes(usedTypes); var cmd = new Sql(expr); return(new RawQuery(cmd, rt)); }
/// <summary> /// Retrieves primary key of just added entity /// </summary> /// <typeparam name="T">Type of primary key</typeparam> /// <param name="qr">Channel</param> /// <param name="keyedAddition">Performed addition</param> /// <returns>Primary key</returns> public static T Key <T>(this Read <QueryChannel <Query> > qr, IAddition <IPrimaryKey <T> > keyedAddition) { var pr = qr.Aspect(); return(pr.Key(keyedAddition)); }
/// <summary> /// Retrieves query builder for ORM query channel /// </summary> /// <typeparam name="T">Type of entity</typeparam> /// <param name="qr">Query channel</param> /// <returns>Query builder</returns> public static IQueryable <T> All <T>(this Read <QueryChannel <Query> > qr) where T : class { var pr = qr.Aspect(); return(pr.GetSet <T>()); }
/// <summary> /// Retrieves query builder for ORM query channel /// </summary> /// <typeparam name="T">Type of entity</typeparam> /// <param name="qr">Query channel</param> /// <returns>Query builder</returns> public static IQueryFor <T> Get <T>(this Read <QueryChannel <Query> > qr) where T : class { var pr = qr.Aspect(); return(new QueryBuilder <T>(pr)); }
/// <summary> /// Helps to obtain current date in Offset format /// </summary> /// <param name="tc">Time channel</param> /// <returns>DateTimeOffset accessor</returns> public static DateTimeOffsetWrapper Offset(this Read <QueryChannel <Query> > tc) => tc.Aspect().DateTimeOffsetWrapper;
/// <summary> /// Helps to obtain current date in DateTime format /// </summary> /// <param name="tc">Time channel</param> /// <returns>DateTime accessor</returns> public static DateTimeWrapper Date(this Read <QueryChannel <Query> > tc) => tc.Aspect().DateTimeWrapper;
public static string GetRandomString(this Read <QueryChannel <Aspect101.Query> > r) => r.Aspect().GetRandomString();