public override void PostFlush(ICollection entities) { IEnumerable <MongoNode> nodes = entities.OfType <MongoNode>(); if (!nodes.Any()) { return; } var repository = new NodeLinkRepository(); Task[] tasks = nodes.Select(x => repository.SaveLinks(x.Id, x.Links)).ToArray(); Task.WaitAll(tasks); }
public void OnPostLoad(PostLoadEvent ev) { var networkNode = ev.Entity as MongoNode; if (networkNode == null) { return; } var repository = new NodeLinkRepository(); IList <NodeLink> linksFromMongo = repository.GetLinks(networkNode.Id); HashSet <NodeLink> links = (HashSet <NodeLink>)networkNode .GetType() .GetProperty("LinksInternal", BindingFlags.NonPublic | BindingFlags.Instance) .GetValue(networkNode); links.UnionWith(linksFromMongo); }
public static void Init(string sqlServerConnectionString, string mongoConnectionString) { SessionFactory.Init(sqlServerConnectionString); NodeLinkRepository.Init(mongoConnectionString); }