示例#1
0
        public override int SaveChanges()
        {
            var orphanedResponses = ChangeTracker.Entries().Where(
                e => (e.State == EntityState.Modified || e.State == EntityState.Added) &&
                e.Entity is PessoaAvaliacao &&
                e.Reference("Avaliacao").CurrentValue == null);

            foreach (var orphanedResponse in orphanedResponses)
            {
                PessoaAvaliacaos.Remove(orphanedResponse.Entity as PessoaAvaliacao);
            }

            var pergs = ChangeTracker.Entries().Where(
                e => (e.State == EntityState.Modified || e.State == EntityState.Added) &&
                e.Entity is Pergunta &&
                e.Reference("Avaliacao").CurrentValue == null);

            foreach (var orphanedResponse in pergs)
            {
                Perguntas.Remove(orphanedResponse.Entity as Pergunta);
            }

            var alters = ChangeTracker.Entries().Where(
                e => (e.State == EntityState.Modified || e.State == EntityState.Added) &&
                e.Entity is Alternativa &&
                e.Reference("Pergunta").CurrentValue == null);

            foreach (var orphanedResponse in alters)
            {
                Alternativas.Remove(orphanedResponse.Entity as Alternativa);
            }

            var pesoss = ChangeTracker.Entries().Where(
                e => (e.State == EntityState.Modified || e.State == EntityState.Added) &&
                e.Entity is Peso &&
                e.Reference("Avaliacao").CurrentValue == null);

            foreach (var orphanedResponse in pesoss)
            {
                Pesos.Remove(orphanedResponse.Entity as Peso);
            }

            return(base.SaveChanges());
        }