c# - Umbraco RelationService.GetByParentId(memberId) slow. Fires two queries per item -


i'm trying relation items 1 parent calling:

var items = applicationcontext.current.services.relationservice.getbyparentid(members.getcurrentmemberid()).toarray(); 

it works fine. except when @ miniprofiler, can see it's firing off 2 queries per item, causing major performance issues larger amounts of items. miniprofiler

i looked @ umbracocms code , found piece of code:

protected override ienumerable<irelation> performgetbyquery(iquery<irelation> query) {     var sqlclause = getbasequery(false);     var translator = new sqltranslator<irelation>(sqlclause, query);     var sql = translator.translate();      var dtos = database.fetch<relationdto>(sql);      foreach (var dto in dtos)     {         yield return get(dto.id);     } } 

the foreach on dtos sending query each movenext() umbracorelationtype table. get() method queries individual item umbracorelation table. think it's supposed utilize cache there, evidently it's not.

anyway. how improve performance here? can somehow content in single query without bypassing umbraco?

i'm using umbraco 7.2.6

i recommend getting parent node or id - , using

applicationcontext.services.relationservice.getbyid(parent.id)
suffers less database queries.


Comments

Popular posts from this blog

toolbar - How to add link to user registration inside toobar in admin joomla 3 custom component -

linux - disk space limitation when creating war file -

How to provide Authorization & Authentication using Asp.net, C#? -