private static void Update(ConfirmReportContext db, Models.ConfirmationReport report) { //see: http://www.entityframeworktutorial.net/EntityFramework5/update-entity-graph-using-dbcontext.aspx var currentReport = db.Reports.AsNoTracking().FirstOrDefault(r => r.Id.Equals(report.Id)); db.Reports.Attach(report); db.Entry(report).State = EntityState.Modified; report.Details.Where(d => d.Id > 0).ToList().ForEach(d => { db.Entry(d).State = EntityState.Modified; }); report.Details.Where(d => d.Id.Equals(0)).ToList().ForEach(d => { db.Entry(d).State = EntityState.Added; }); currentReport.Details.Where(d => !report.Details.Any(nr => nr.Id.Equals(d.Id))).ToList().ForEach(d => { var newD = new Models.ConfirmationReportDetail { Id = d.Id }; db.ReportDetails.Attach(newD); db.ReportDetails.Remove(newD); }); }
public ConfirmationReportRepository(ConfirmReportContext db, IMapper mapper) { this.db = db; this.mapper = mapper; }
public ConfirmationReportDatabase() { context = new ConfirmReportContext(); //context.Configuration.LazyLoadingEnabled = false; //context.Configuration.ProxyCreationEnabled = false; }