/// <summary>
		/// Create News Media Content 
		/// </summary>
		/// <param name="newsMedia">newsMedia</param>
		/// <returns>Returns the news media content</returns>
         public NewsMedia Create(NewsMedia newsMedia)
         {
            using(var database = new DbContext(CONNECTION_NAME))
             {
                database.Set<NewsMedia>().Add(newsMedia);
                database.SaveChanges();

                return newsMedia;
             }

         }
		/// <summary>
		/// Update News Media Content 
		/// </summary>
		/// <param name="newsMedia">newsMedia</param>
		/// <returns>Returns the news media content</returns>
        public NewsMedia Update(NewsMedia newsMedia)
         {
             using (var database = new DbContext(CONNECTION_NAME))
              {
                 var entryMedia = database.Entry<NewsMedia>(newsMedia);

                 entryMedia.State = EntityState.Unchanged;

                 entryMedia.Property("Status").IsModified = true;

                 entryMedia.Property("Remarks").IsModified = true;

                 entryMedia.Property("IsCompleted").IsModified = true;

                 database.SaveChanges();

              }

         }
Exemplo n.º 3
0
 private static void SaveContextChanges(DbContext ctx, PoliticaConcorrencia politicaConcorrencia = PoliticaConcorrencia.UsarInfoCtx)
 {
     bool falha;
     do {
         falha = false;
         try { ctx.SaveChanges(); }
         catch (DbUpdateConcurrencyException ex) {
             Console.WriteLine("Ocorreu uma DbUpdateConcurrencyException durante o SaveChanges.");
             falha = true;
             switch (politicaConcorrencia)
             {
                 case PoliticaConcorrencia.UsarInfoBD:
                     {
                         // ignorar as alterações feitas no contexto e usar a informação corrente na BD (estado = unchanged)
                         ex.Entries.Single().Reload();
                         break;
                     }
                 case PoliticaConcorrencia.UsarInfoCtx:
                     {
                         // esmagar as alterações na BD
                         var entry = ex.Entries.Single();
                         var dbValues = entry.GetDatabaseValues();
                         entry.OriginalValues.SetValues(dbValues);
                         break;
                     }
                 case PoliticaConcorrencia.FnResolucaoConflitos:
                     {
                         // deixar que a aplicação cliente decida
                         var entry = ex.Entries.Single();
                         var dbValues = entry.GetDatabaseValues();
                         entry.CurrentValues.SetValues(ResolverConflitos(entry.OriginalValues, entry.CurrentValues, dbValues));
                         entry.OriginalValues.SetValues(dbValues);
                         break;
                     }
                 default:
                     throw new Exception("Politica desconhecida: " + politicaConcorrencia.ToString());
             }
         }
     } while (falha);
 }
Exemplo n.º 4
0
        private void SaveChanges(DbContext context)
        {
            try
            {
                context.SaveChanges();
            }
            catch (DbEntityValidationException ex)
            {
                StringBuilder sb = new StringBuilder();

                foreach (var failure in ex.EntityValidationErrors)
                {
                    sb.AppendFormat("{0} failed validation\n", failure.Entry.Entity.GetType());
                    foreach (var error in failure.ValidationErrors)
                    {
                        sb.AppendFormat("{0} : {1}", error.PropertyName, error.ErrorMessage, " * ");
                        sb.AppendLine();
                    }
                }

                throw new DbEntityValidationException(
                    "Entity Validation Failed: " +
                    sb.ToString(), ex
                ); // Add the original exception as the innerException
            }
            catch (Exception ex)
            {
                throw;
            }
        }