/// <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(); } }
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); }
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; } }