Beispiel #1
0
        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);
            });
        }
Beispiel #2
0
 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;
 }