static void Main(string[] args) { var utils = new DataUtils(); var init = new InitData(); var efUtils = new EFUtils(); var users = init.GetUsers(10000); //DateTime strtime = DateTime.Now; //for (int i = 0; i < 10000; i++) //{ // utils.Add(init.GetUser()); //} //DateTime endtime = DateTime.Now; //Console.WriteLine($"dapper添加10000个用户:{endtime - strtime}"); //DateTime efstrtime = DateTime.Now; //for (int i = 0; i < 10000; i++) //{ // efUtils.Add(init.GetUser()); //} //DateTime efendTime = DateTime.Now; //Console.WriteLine($"EF添加10000个用户:{efendTime - efstrtime}"); //DateTime strtime = DateTime.Now; //utils.AddRange(users); //DateTime endtime = DateTime.Now; //Console.WriteLine($"dapper批量添加10000个用户:{endtime - strtime}"); //var users2 = init.GetUsers(10000); //DateTime efstrtime = DateTime.Now; //efUtils.AddRange(users2); //DateTime efendtime = DateTime.Now; //Console.WriteLine($"EF批量添加10000个用户:{efendtime - efstrtime}"); //utils.InitArea(); //DateTime dpselectStrTime = DateTime.Now; //for (int i = 0; i < 1000; i++) //{ // var area = utils.SelectAreaByCode("130500"); //} //DateTime dpselectEndTime = DateTime.Now; //DateTime efselectStrTime = DateTime.Now; //for (int i = 0; i < 1000; i++) //{ // var area = efUtils.LinqSelectArea("130500"); //} //DateTime efselectEndTime = DateTime.Now; //Console.WriteLine($"dapper查询1000次:{dpselectEndTime - dpselectStrTime}"); //Console.WriteLine($"EF查询1000次:{efselectEndTime - efselectStrTime}"); SortedDictionary <string, string> sort = new SortedDictionary <string, string>(); object dto = new AreaDto { Name = "woshiceshi", pName = "ceshishsishi" }; Type type = dto.GetType(); var ts = type.GetProperties(); Console.ReadKey(); }
public override IQueryable <User> Filter(IQueryable <User> entities, FilterQuery filterQuery) { if (filterQuery.Attribute.Equals("name", StringComparison.OrdinalIgnoreCase)) { return(entities.Where(u => EFUtils.Like(u.Name, filterQuery.Value))); } return(entities.OptionallyFilterOnQueryParam(filterQuery, "organization-id", this, CurrentUserContext, GetWithOrganizationId, FilterOnOrganizationHeader, null, null)); }
private Task <object> GetByPrimaryKey(IEntityType entity, string id) { var primaryKey = EFUtils.GetPrimaryKeyProperty(entity); if (primaryKey == null) { throw new Exception("Could not find primary key for " + entity.Name); } var pkQuery = new Dictionary <string, string[]> { { primaryKey.Name, new[] { id } } }; IQueryable <object> results = Reflection.GetDbSetForType(db, entity); return(Expressions .FilterByEntityParameters(results, entity, pkQuery) .SingleOrDefaultAsync()); }
public override IQueryable <Project> Filter(IQueryable <Project> entities, FilterQuery filterQuery) { if (filterQuery.Has(ORGANIZATION_HEADER)) { var orgIds = CurrentUser.OrganizationIds.OrEmpty(); return(entities.FilterByOrganization(filterQuery, allowedOrganizationIds: orgIds)); } var value = filterQuery.Value; var op = filterQuery.Operation.ToEnum <FilterOperations>(defaultValue: FilterOperations.eq); if (filterQuery.Has(PROJECT_UPDATED_DATE)) { var date = value.DateTimeFromISO8601(); switch (op) { case FilterOperations.ge: return(entities .Where(p => p.DateUpdated > date)); case FilterOperations.le: return(entities .Where(p => p.DateUpdated < date)); } } if (filterQuery.Has(PROJECT_PRODUCT_NAME_ANY)) { return(entities .Include(p => p.Products) .ThenInclude(product => product.ProductDefinition) .Where(p => p.Products .Any(product => EFUtils.Like(product.ProductDefinition.Name, value)))); } if (filterQuery.Has(PROJECT_PRODUCT_DEFINITION_ID_ANY)) { return(entities .Include(p => p.Products) .Where(p => p.Products .Any(product => product.ProductDefinitionId.ToString() == value))); } if (filterQuery.Has(PROJECT_SEARCH_TERM)) { return(entities .Include(p => p.Owner) .Include(p => p.Organization) .Include(p => p.Group) .Where(p => ( EFUtils.Like(p.Name, value) || EFUtils.Like(p.Language, value) || EFUtils.Like(p.Organization.Name, value) || EFUtils.Like(p.Owner.Name, value) || EFUtils.Like(p.Group.Name, value) ))); } return(base.Filter(entities, filterQuery)); }