【发布时间】:2016-03-10 11:57:55
【问题描述】:
我对 C# MVC EntityState 没有太多经验,我通常使用 IT 基础设施,但我开始创建一个新程序,我需要帮助来解决这个问题。
我有这个数据库: 专业公司 身份证号 名称 说明 ...
一名专业人员可以在一家或多家公司工作,而一家公司可以拥有一名或多名专业人员。
我的 ProfessionalController.cs 代码:
public ActionResult Edit([Bind(Include = "ID,Name,...")] Profissional profissional, List<int> companiesList)
{
if (ModelState.IsValid){
if (companiesList != null){
List<Companies> lista = new List<Companies>();
foreach (int ID in companiesList)
{
lista.Add(db.Companies.Find(ID));
}
var profissionalN = db.Profissional.Find(profissional.ID);
var needDelete = profissionalc.Companies.Except(lista).ToList();
var needCreate = lista.Except(profissionalc.Companies).ToList();
profissional.Companies.Clear();
db.Entry(profissionalN).State = EntityState.Detached;
db.Entry(profissional).State = EntityState.Modified;
foreach (Companies convenio in needCreate){
profissional.Companies.Add(convenio);
}
foreach (Companies convenio in needDelete){
profissional.Companies.Remove(convenio);
}
}
db.Entry(profissional).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
return View(profissional);
}
我可以向公司添加专业人员,但我不能删除。
谁能帮帮我?
我也试过下面的代码删除,没有成功:
public void RemoveCompanies(int profissionalID, int companyID)
{
var profissional2 = db.Profissional.FirstOrDefault(x => x.ID == profissionalID);
var company2 = db.Company.FirstOrDefault(x => x.ID == companyID);
profissional2.Company.Remove(companyID);
db.Entry(profissional2).State = EntityState.Modified;
db.SaveChanges();
}
【问题讨论】:
标签: c# asp.net-mvc entity-framework model-view-controller many-to-many