I have 2 tables, Table_Books
and Table_RentedBooks
. When a user rents a book, I created a row in Table_Rented
books with a IsDelete = 0
(it means it is still rented).
When user decides to deliver the book I want to change the column as IsDelete=1
but I get this error
Store update, insert, or delete statement affected an unexpected number of rows (0). Entities may have been modified or deleted since entities were loaded
I tried to do everything but still can't make it work. What should I change in my tables and codes?
Table_Books
BookID int Unchecked,
CategoryID int Unchecked,
BookName varchar(100) Unchecked,
Writer varchar(50) Unchecked,
Page int Unchecked,
Recorddate date Unchecked,
UpdateDate date Checked,
Image varchar(300) Unchecked,
Subject varchar(500) Unchecked,
NumberofBooks int Unchecked,
IsDeleted int Checked
(BookID is the primary key)
Table_RentedBooks
RentID int Unchecked,
BookID int Unchecked,
UserID int Unchecked,
Recorddate date Unchecked,
Deliverydate Unchecked,
IsDeleted int Unchecked,
(Recorddate is the primary key)
RENT BOOK
[HttpPost]
public ActionResult RentBook(Table_Books book)
{
User data = Session["useriz"] as User ;
Book bookdata= Session["bookdata"] as Book;
Table_RentedBooks z = new Table_RentedBooks ();
var tbookid = book.BookID;
var numberofbooks1=(int)bookdata.NumberofBooks -1;
book.CategoryID = kitapdata.KategoriID;
book.Image= kitapdata.KitapGorsel;
book.NumberofBooks = numberofbooks1;
bookrepo.Update(book);
DateTime date = DateTime.Now;
DateTime Recorddate = date;
DateTime Deliverydate = date.AddDays(14);
z.IsDeleted = 0;
z.Deliverydate = Deliverydate ;
z.Recorddate = Recorddate ;
z.UserID = data.UserID ;
z.BookID = tbookid;
Random rnd = new Random();
int randomint = rnd.Next();
z.RentID= randomint;
rentedrepo.Add(z);
return RedirectToAction("index", "Home");
}
}
DELIVER BOOK (This method is the problem)
[HttpPost]
public ActionResult KitapTeslimEt(Table_Book book,Table_RentedBooks rentedbook)
{
User data = Session["useriz"] as User ;
Book bookdata= Session["bookdata"] as Book;
Table_RentedBooks z = new Table_RentedBooks ();
var tbookid = book.BookID;
var numberofbooks1=(int)bookdata.NumberofBooks -1;
book.CategoryID = kitapdata.KategoriID;
book.Image= kitapdata.KitapGorsel;
book.NumberofBooks = numberofbooks1;
bookrepo.Update(book);
DateTime date= DateTime.Now;
DateTime Recorddate = date;
DateTime Deliverydate = date.AddDays(14);
z.IsDeleted = 1;
z.Deliverydate = Deliverydate ;
z.Recorddate = Recorddate ;
z.UserID = data.UserID ;
z.BookID= tbookid;
Random rnd = new Random();
int randomint = rnd.Next();
z.RentID= randomint;
rentedrepo.Update(z);
return RedirectToAction("index", "Home");
}
UPDATE METHOD
public void Update(T par) {
try
{
db.SaveChanges();
}
catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)
{
Exception raise = dbEx;
foreach (var validationErrors in dbEx.EntityValidationErrors)
{
foreach (var validationError in validationErrors.ValidationErrors)
{
string message = string.Format("{0}:{1}",
validationErrors.Entry.Entity.ToString(),
validationError.ErrorMessage);
// raise a new exception nesting
// the current instance as InnerException
raise = new InvalidOperationException(message, raise);
}
}
throw raise;
}
}