Je StudentRegistration Modèle classe comme suitBase de données mise à jour - Suppression des données existantes et l'ajout de nouvelles données avec 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; }
}
je tentais de supprimer la liste existante de studentreceipt et ajouter de nouvelles list.The new studentreceipt list
est correctement dans la ajoutant base de données mais le existing studentreceipt list
ne se supprime pas de la base de données et le de existing studentreceipt list
est défini sur null
.
Je veux supprimer le studentreceipt list
existant de la base de données et ajouter une nouvelle liste.Comment puis-je le faire?
C'est ce que j'ai essayé
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);
}
}
}
Comme je l'ai mentionné plus haut la nouvelle liste de studentreceipt ajoute correctement dans la base de données, mais la liste des studentreceipt existante ne reçoit pas supprimé de la base .Infact la StudentRegistrationId de la liste des studentreceipt existante est définie sur null. – ksg
Y a-t-il des 'StudentReceipts' dans' _dbRegn.StudentReceipts.ToList() '? –
Oui, il y aura 'StudentReceipts' dans' _dbRegn.StudentReceipts.ToList() '.Et je veux supprimer la liste existante et ajouter la nouvelle liste – ksg