MVC'ye oldukça yeniyim ve kaskat silme ile ilgili sorun yaşıyorum. Benim modeli I aşağıdaki 2 sınıfları için:MVC .Net Cascade EF Kodu Kullanırken Silme İlk Yaklaşım
public class Blog
{
[Key]
public int Id { get; set; }
[Required]
public string Name { get; set; }
[DisplayFormat()]
public virtual ICollection<BlogEntry> BlogEntries { get; set; }
public DateTime CreationDateTime { get; set; }
public string UserName { get; set; }
}
public class BlogEntry
{
[Key]
public int Id { get; set; }
[Required]
public string Title { get; set; }
[Required]
public string Summary { get; set; }
[Required]
public string Body { get; set; }
public List<Comment> Comments { get; set; }
public List<Tag> Tags { get; set; }
public DateTime CreationDateTime { get; set; }
public DateTime UpdateDateTime { get; set; }
public virtual Blog ParentBlog { get; set; }
}
Ve denetleyicisi için geri silme yayında şu he ayarlayın:
[HttpPost, ActionName("Delete")]
public ActionResult DeleteConfirmed(int id)
{
Blag blog = db.Blogs.Find(id);
foreach (var blogentry in blog.BlogEntries)
{
//blogentry = db.BlogEntries.Find(id);
db.BlogEntries.Remove(blogentry);
}
db.Blogs.Remove(blog);
db.SaveChanges();
return RedirectToAction("Index");
}
Sorun alışkanlık ne olursa olsun çalışmak olduğunu; I read this post ama sadece ilişkinin birebir olduğu modeller için çalışıyorum, bu yüzden burada kayboldum, her yerde arama yaptım ve bazılarının eksik olduğumu göstermesi durumunda bu sorunun çözümü bulunamıyor. Bu gerçekten çok güzel olurdu :), şimdiden teşekkürler, ve yine, benim nooobness için özür dilerim sadece başladım, ama çok şey öğrenebilmek için büyük bir proje ile uğraşmak istedim.
public ActionResult Delete(int id)
{
try {
Products products = context.Products.Single(x => x.productId == id);
return View(products);
}
catch (Exception ex)
{
ModelState.AddModelError("",ex.Message);
CompileAndSendError(ex);
return View(new Products());
}
}
//
// POST: /Products/Delete/5
[HttpPost, ActionName("Delete")]
public ActionResult DeleteConfirmed(int id)
{
try {
Products products = context.Products.Single(x => x.productId == id);
context.Products.Remove(products);
context.SaveChanges();
return RedirectToAction("Index");
}
catch (Exception ex)
{
ModelState.AddModelError("",ex.Message);
CompileAndSendError(ex);
return RedirectToAction("Index");
}
}
Yay! : D, işe yaradı !, çok teşekkürler, sadece akıcı API'nin farkında değildim, ama bu şeyi yapmanın iyi bir yolu gibi görünüyor, bu arada bu davranışı veri ek açıklamalarıyla alabilir miyim? –
@Q_ro Veri ek açıklamalarında sınırlı özellik kümesi vardır. – Eranga