Модифицированный объект не применяется в базе данных - PullRequest
0 голосов
/ 13 июня 2018

Я пытаюсь обновить ссудный баланс на основе оплаты, произведенной участником.Оплата идет хорошо, и она вставляется, как и ожидалось, но во время обновления таблицы LOANBAl ничего не меняется, ниже мой код:

public void UpdateLoanBal(MPAreceipting mpa, string id)
    {
        using (BOSAEntities db = new BOSAEntities())
        {
            General gn = new General();
            gn.GetUser();
            gn.GetServerDate();

            LoanRepayment lr = new LoanRepayment();
            lr.GetMemberDeduction(loanno);
            var lOANBAL = db.LOANBALs.Find(id);
            var lb = new LOANBAL();

            lb.AuditID = gn.sysUser;
            lb.AuditTime = gn.serverDate;
            lb.Balance = Convert.ToDecimal(lr.loanBalance);
            lb.IntrOwed = Convert.ToDecimal(lr.intOwed);
            lb.LastDate = mpa.dateDeposited;


            db.Entry(lOANBAL).State = EntityState.Modified;

            db.SaveChanges();
        }
    }

1 Ответ

0 голосов
/ 13 июня 2018

Я использовал lOANBAL, который является сущностью, и обновил его свойства.

 public void UpdateLoanBal(MPAreceipting mpa, string id)
    {
        var db = new BOSAEntities();
        using (var dbContextTransaction = db.Database.BeginTransaction())
        {
            try
            {
                var lOANBAL = db.LOANBALs.Find(loanno);
                General gn = new General();
                gn.GetUser();
                gn.GetServerDate();
                LoanRepayment lr = new LoanRepayment();
                lr.GetMemberDeduction(loanno);
                lOANBAL.LoanNo = loanno;
                lOANBAL.AuditID = gn.sysUser;
                lOANBAL.AuditTime = gn.serverDate;
                lOANBAL.Balance = Convert.ToDecimal(lr.loanBalance);
                lOANBAL.IntrOwed = Convert.ToDecimal(lr.intOwed);
                lOANBAL.LastDate = mpa.dateDeposited;
                lOANBAL.TransactionNo=lr.

                db.Entry(lOANBAL).State = EntityState.Modified;
                db.SaveChanges();
                dbContextTransaction.Commit();
            }
            catch (DbEntityValidationException Exc)
            {
                dbContextTransaction.Rollback();
                string errormessage = string.Join(";",
                    Exc.EntityValidationErrors.SelectMany(x => x.ValidationErrors).Select(x => x.ErrorMessage));
                throw new DbEntityValidationException(errormessage);
            }
        }
    }
...