У меня есть StudentRegistration Модель класс следующегоОбновление базы данных - Удаление существующих данных и добавление новых данных с entityframework
public partial class StudentRegistration
{
public StudentRegistration()
{
this.StudentReceipts = new HashSet<StudentReceipt>();
}
public int Id { get; set; }
public Nullable<int> StudentWalkInnID { get; set; }
...
...
public virtual ICollection<StudentReceipt> StudentReceipts { get; set; }
}
public partial class StudentReceipt
{
public int Id { get; set; }
public Nullable<int> StudentRegistrationID { get; set; }
...
...
public virtual StudentRegistration StudentRegistration { get; set; }
}
Я пытался удалить существующий список studentreceipt и добавить новый list.The new studentreceipt list
правильно добавлять в базе данных но existing studentreceipt list
не удаляется из базы данных, а StudentRegistrationId
из existing studentreceipt list
установлено в null
.
Я хочу удалить существующие studentreceipt list
из базы данных и добавить новый список. Как я могу это сделать?
Это то, что я попытался
using (TransactionScope _ts = new TransactionScope())
{
_dbRegn = _db.StudentRegistrations
.Where(r => r.Id == Id).FirstOrDefault();
if (_dbRegn != null)
{
//Remove existing receipts
foreach (var _existingReceipt in _dbRegn.StudentReceipts.ToList())
{
_dbRegn.StudentReceipts.Remove(_existingReceipt);
}
//adding new receipt
foreach (var _receipt in mdlCourseInterchange.StudentReceiptList)
{
StudentReceipt _studReceipt = new StudentReceipt();
//...
//...
_dbRegn.StudentReceipts.Add(_studReceipt);
}
//...
//..
db.Entry(_dbRegn).State = EntityState.Modified;
int j = _db.SaveChanges();
if (j > 0)
{
_ts.Complete();
return Json(new { message = "success" }, JsonRequestBehavior.AllowGet);
}
}
}
Как я уже упоминал выше, новый список studentreceipt правильно добавлять в базу данных, но существующий список studentreceipt не получает удален из базы данных .Infact StudentRegistrationId из существующего списка studentreceipt устанавливается в нуль. – ksg
Итак, есть ли 'StudentReceipts' в' _dbRegn.StudentReceipts.ToList() '? –
Да, будет 'StudentReceipts' в' _dbRegn.StudentReceipts.ToList() '. И я хочу удалить существующий список и добавить новый список. – ksg