private void EnsureRelatedPreloaded() { if (preloaded) { return; } EnsureLoaded(); preloaded = true; var ids = relations .Select((inter) => reverse ? inter.FromId : inter.ToId) .Where((v) => v.HasValue) .ToList(); Model.Query <TRelated> ((m) => ids.Contains(m.Id)); }
private void EnsureLoaded() { if (relations != null) { return; } relations = new List <TInter> (); var cachedInters = Model.Manager.Cached <TInter> ().Where(InterLookupFunc); var dbInters = Model.Query <TInter> (InterLookupQuery); var inters = cachedInters.Union(dbInters).Where(IsOurInter); foreach (var inter in inters) { AddRelation(inter); } var bus = ServiceContainer.Resolve <MessageBus> (); subscriptionModelChanged = bus.Subscribe <ModelChangedMessage> (OnModelChanged); }