private static IQueryable <TRoot> CallChildJoin <TRoot, TFrom>(LocalCrmDatabaseInfo info, IQueryable <TRoot> query, LinkEntity fromEntity, LinkEntity link) where TRoot : Entity where TFrom : Entity { var tRoot = typeof(TRoot); var tTo = GetType(info, link.LinkToEntityName); return((IQueryable <TRoot>)GenericMethodCaller.InvokeLocalCrmDatabaseStaticMultiGenericMethod( info, nameof(ChildJoin), BindingFlags.NonPublic, new object[] { tRoot, typeof(TFrom), tTo }, info, query, fromEntity, link)); }
private static IQueryable <T> CallJoin <T>(LocalCrmDatabaseInfo info, IQueryable <T> query, LinkEntity link) where T : Entity { try { var tFrom = typeof(T); var tTo = GetType(info, link.LinkToEntityName); return((IQueryable <T>)GenericMethodCaller.InvokeLocalCrmDatabaseStaticMultiGenericMethod( info, nameof(Join), BindingFlags.NonPublic, new object[] { tFrom, tTo }, info, query, link)); } catch (TargetInvocationException ex) { if (ex.InnerException == null) { throw; } throw ex.InnerException; } }