Exemplo n.º 1
0
        /// <summary>
        /// 别名可以直接用字符串
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="p"></param>
        /// <param name="alias"></param>
        /// <returns></returns>
        public static QueryOverProjectionBuilder <T> WithAliasString <T>(this QueryOverProjectionBuilder <T> p, string alias)
        {
            FieldInfo fi = typeof(QueryOverProjectionBuilder <T>).GetField("lastProjection",
                                                                           BindingFlags.NonPublic | BindingFlags.SetField | BindingFlags.Instance | BindingFlags.GetField);

            IProjection lastProjection = fi.GetValue(p) as IProjection;

            fi.SetValue(p, Projections.Alias(lastProjection, alias));

            return(p);
        }
Exemplo n.º 2
0
 /// <summary>
 /// Media items selector.
 /// </summary>
 /// <param name="builder">Media items projection builder.</param>
 /// <returns>Media items projection builder</returns>
 protected virtual QueryOverProjectionBuilder <TEntity> SelectItems(QueryOverProjectionBuilder <TEntity> builder)
 {
     return(builder
            .Select(() => alias.Id).WithAlias(() => modelAlias.Id)
            .Select(() => alias.Title).WithAlias(() => modelAlias.Name)
            .Select(() => alias.CreatedOn).WithAlias(() => modelAlias.CreatedOn)
            .Select(() => alias.OriginalFileExtension).WithAlias(() => modelAlias.FileExtension)
            .Select(() => alias.PublicUrl).WithAlias(() => modelAlias.PublicUrl)
            .Select(alias.GetIsProcessingConditions()).WithAlias(() => modelAlias.IsProcessing)
            .Select(alias.GetIsFailedConditions()).WithAlias(() => modelAlias.IsFailed)
            .Select(() => alias.Version).WithAlias(() => modelAlias.Version));
 }
Exemplo n.º 3
0
        /// <summary>
        /// SelectEntity
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="builder"></param>
        /// <returns></returns>
        public static QueryOverProjectionBuilder <T> SelectEntity <T>(this QueryOverProjectionBuilder <T> builder) where T : class
        {
            System.Type type       = typeof(T);
            var         properties = type.GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);

            foreach (PropertyInfo pi in properties)
            {
                if (pi.CanWrite)
                {
                    builder.Select(NHibernate.Criterion.Projections.Property(pi.Name).As(pi.Name));
                }
            }

            return(builder);
        }
Exemplo n.º 4
0
 /// <summary>
 /// Selects the items.
 /// </summary>
 /// <param name="builder">The builder.</param>
 /// <returns></returns>
 protected override QueryOverProjectionBuilder <MediaImage> SelectItems(QueryOverProjectionBuilder <MediaImage> builder)
 {
     return(builder
            .Select(() => alias.Id).WithAlias(() => modelAlias.Id)
            .Select(() => alias.Title).WithAlias(() => modelAlias.Name)
            .Select(() => alias.CreatedOn).WithAlias(() => modelAlias.CreatedOn)
            .Select(() => alias.Version).WithAlias(() => modelAlias.Version)
            .Select(() => alias.Caption).WithAlias(() => modelAlias.Tooltip)
            .Select(() => alias.OriginalFileExtension).WithAlias(() => modelAlias.FileExtension)
            .Select(() => alias.PublicThumbnailUrl).WithAlias(() => modelAlias.ThumbnailUrl)
            .Select(() => alias.PublicUrl).WithAlias(() => modelAlias.PublicUrl)
            .Select(alias.GetIsProcessingConditions()).WithAlias(() => modelAlias.IsProcessing)
            .Select(alias.GetIsFailedConditions()).WithAlias(() => modelAlias.IsFailed)
            .Select(() => alias.Size).WithAlias(() => modelAlias.Size));
 }