Ejemplo n.º 1
0
 /// <summary>
 /// 设置查询
 /// </summary>
 /// <param name="query"></param>
 protected virtual void SetQuery(QueryInfo query)
 {
     query.From <T>();
     SetQueryWhere(query);
     SetQuerySelect(query);
     SetQueryOrderby(query);
 }
Ejemplo n.º 2
0
        /// <summary>
        /// 创建查询
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="query"></param>
        /// <returns></returns>
        public static IQueryable <T> Query <T>(this QueryInfo query)
        {
            var name = string.Format("{0},{1}", typeof(T).FullName,
                                     typeof(T).Module.Name.Replace(".DLL", "").Replace(".dll", ""));

            query.From(name);
            return(new Queryable <T>(query));
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 呈现
        /// </summary>
        /// <param name="partialViewName"></param>
        /// <param name="model"></param>
        /// <param name="valueName"></param>
        /// <param name="textName"></param>
        public virtual MvcHtmlString EntityPartial <T>(string partialViewName, DropDownListModel model, string valueName = "Id", string textName = "Name")
        {
            var query = new QueryInfo();

            query.From <T>().Select(string.Format("{0},{1}", valueName, textName));
            var infos = Ioc.Resolve <IApplicationService, T>().GetEntities <T>(query);

            return(EntityPartial(partialViewName, model, infos, valueName, textName));
        }
Ejemplo n.º 4
0
        protected virtual IList <BaseEntity> GetEntities()
        {
            var query = new QueryInfo();

            query.From(ObjectName);
            query.SelectExp = ObjectFields;
            query.WhereExp  = string.Format("{0}==@ParentKey", DataParentField);
            query.SetParameter("ParentKey", IdKey.Length > 0 ? IdKey : DefaultParentKey);
            return(Ioc.Resolve <IApplicationService>().GetEntities <BaseEntity>(query));
        }
Ejemplo n.º 5
0
        /// <summary>
        /// 得到记录集
        /// </summary>
        /// <returns></returns>
        protected virtual IList <BaseEntity> GetEntities()
        {
            var query = new QueryInfo();

            query.From(EntityName).Where(string.Format("{0}==@ParentId", ParentPropertyName))
            .Select(string.Format("{0},{1}", DataTextField, DataValueField)).SetParameter("ParentId", TreeView.SelectedValue.Convert <long>());
            if (!string.IsNullOrEmpty(SequencePropertyName))
            {
                query.OrderBy(SequencePropertyName);
            }
            return(Ioc.Resolve <IApplicationService, BaseEntity>().GetEntities <BaseEntity>(query));
        }
Ejemplo n.º 6
0
        /// <summary>
        /// 得到查询对象
        /// </summary>
        /// <param name="infos"></param>
        /// <param name="ormProperty"></param>
        protected virtual QueryInfo GetLazyLoadQuery(IEnumerable <EntityInfo> infos, OrmPropertyInfo ormProperty)
        {
            var ids   = infos.Select(it => it.GetProperty(ormProperty.Map.ObjectProperty.PropertyName)).ToList();
            var query = new QueryInfo {
                IsLazyLoad = true
            };

            query.From(ormProperty.Map.GetMapObject().ObjectName);
            if (ids.Count == 0)
            {
                query.Where(string.Format("{0}==@MapId", ormProperty.Map.MapObjectProperty.PropertyName))
                .SetParameter("MapId", ids[0]);
            }
            else
            {
                query.Where(string.Format("@MapIds.Contains({0})", ormProperty.Map.MapObjectProperty.PropertyName))
                .SetParameter("MapIds", ids.ToArray());
            }
            return(query);
        }
Ejemplo n.º 7
0
        /// <summary>
        /// 检查
        /// </summary>
        /// <returns></returns>
        protected virtual bool Check(ActionExecutingContext filterContext)
        {
            if (IdentityId == 0)
            {
                return(false);
            }
            var reuslt = filterContext.Controller.ValueProvider.GetValue(IdParamterName);

            if (reuslt == null || reuslt.RawValue == null)
            {
                return(false);
            }
            var rawValue = reuslt.RawValue;

            if (typeof(string[]) == rawValue.GetType())
            {
                var values = rawValue.Convert <string[]>();
                if (values == null)
                {
                    return(false);
                }
                var ids = values.Select(value => value.Convert <long>()).ToArray();
                if (ids.Length == 0)
                {
                    return(false);
                }
                var query = new QueryInfo {
                    IsReturnCount = false
                };
                query.SetPageSize(1).From(EntityType.FullName)
                .Where(string.Format("@IdArray.Contains(Id) && {0}==@IdentityId", IdentityName))
                .SetParameter("IdArray", ids)
                .SetParameter("IdentityId", IdentityId)
                .Select("Id");
                var infos = Ioc.Resolve <IApplicationService, BaseEntity>().GetEntities <BaseEntity>(query);
                if (infos != null && infos.Count == ids.Length)
                {
                    return(true);
                }
            }
            else
            {
                var id = rawValue.Convert <long>();
                if (id == 0)
                {
                    return(false);
                }
                var query = new QueryInfo {
                    IsReturnCount = false
                };
                query.From(EntityType.FullName)
                .Where(string.Format("Id==@Id && {0}==@AccountId", IdentityName))
                .SetParameter("Id", id)
                .SetParameter("IdentityId", IdentityId)
                .Select("Id");
                var infos = Ioc.Resolve <IApplicationService, BaseEntity>().GetEntities <BaseEntity>(query);
                if (infos != null && infos.Count > 0)
                {
                    return(true);
                }
            }
            return(false);
        }