/// <summary> /// 设置查询 /// </summary> /// <param name="query"></param> protected virtual void SetQuery(QueryInfo query) { query.From <T>(); SetQueryWhere(query); SetQuerySelect(query); SetQueryOrderby(query); }
/// <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)); }
/// <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)); }
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)); }
/// <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)); }
/// <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); }
/// <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); }