0
我有两个实体,Alpha
和Beta
,它们之间有M:M的关系。未添加多对多关系
我想一些Beta
s添加到一个Alpha
像这样:
public ActionResult Edit(Alpha alpha)
{
if (ModelState.IsValid)
{
var selectedBetaIds = //populated from checkboxes in the view
var selectedBetas = db.Betas.Where(b => selectedBetaIds.Contains(b.Id));
alpha.Betas.Clear();
foreach (var b in selectedBetas)
alpha.Betas.Add(b);
db.Entry(alpha).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
return View(alpha);
}
但表AlphaBetas
没有添加到它和任何alpha.Betas.Count() == 0
任何条目。
奇怪的是在db.SaveChanges()
以上的方法中,在调试时,Betas
按预期填充。
谢谢!问题是我不能在'db.SaveChanges()'之前调用它,因为'alpha'尚未加载。处理这个问题的最好方法是什么? – 2013-04-22 14:06:14
啊......在顶部调用'db.Alphas.Attach(alpha)'。简单。谢谢! – 2013-04-22 14:09:06