/// <summary> /// Apenas para testes /// </summary> private static void TestarQueries() { var processosAtualizados = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; using (var contexto = new ProcessoContext()) { var serviceProvider = contexto.GetInfrastructure <IServiceProvider>(); var loggerFactory = serviceProvider.GetService <ILoggerFactory>(); loggerFactory.AddProvider(new MyFilteredLoggerProvider()); var interessados = contexto.Processos .Where(p => processosAtualizados.Contains(p.Id)) .SelectMany(p => p.Interesses) .Select(i => i.Interessado) .Distinct() .ToList(); //para executar logo a consulta foreach (var interessado in interessados) { var processos = contexto.Interessados .Where(i => i.Id == interessado.Id) .SelectMany(i => i.Interesses) .Select(ip => ip.Processo) .Distinct(); var corpoMensagem = "Os seguintes processos foram atualizados:"; foreach (var p in processos) { corpoMensagem += "\n\r" + p.ToString(); } System.Console.WriteLine(corpoMensagem); } } }
/// <summary> /// Apenas para testes /// </summary> private static void CadastrarInteressados() { using (var contexto = new ProcessoContext()) { var serviceProvider = contexto.GetInfrastructure <IServiceProvider>(); var loggerFactory = serviceProvider.GetService <ILoggerFactory>(); loggerFactory.AddProvider(new MyFilteredLoggerProvider()); var processosMonitorados = contexto.Processos; var daniel = new Interessado() { Nome = "Daniel Portugal", Email = "*****@*****.**" }; var marcia = new Interessado() { Nome = "Marcia Garcia", Email = "*****@*****.**" }; daniel.RegistraInteresse(processosMonitorados); marcia.RegistraInteresse(processosMonitorados); contexto.SaveChanges(); } }