Итак, у меня есть проблема с сохранением данных, содержащих связанные объекты, когда я сохраняю новое отношение.Обновление связанных данных с использованием MVC 4 и Entity Framework?
Exemple:
Сущности:
public class Project
{
public int Id { get; set; }
public int Code{ get; set; }
public string Description{ get; set; }
public virtual Client Client { get; set; }
}
public class Client
{
public int Id { get; set; }
public int Code { get; set; }
public string Name { get; set; }
}
ГЭТ Контроллер:
public ActionResult Create()
{
PopulateDropDownClienteList(String.Empty); //Returns to ViewBag to create a combobox .in view
return View();
}
Взгляд:
@Html.DropDownListFor(m => m.Client.Id, new SelectList(ViewBag.Client_Id, "Id", "Name"), new { Name = "Client.Id" });
Контроллер POST:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(string command, Project project)
{
try
{
if (ModelState.IsValid)
{
projectRepository = new ProjeRepository();
Project pro = projectRepository.ReturnByCode(project.Code);
if (pro == null)
projectRepository.Save(project);
else
projectRepository.Update(project);
PopulateDropDownClienteList(String.Empty);
Return View();
}
else
{
return View(project);
}
}
catch (Exception ex)
{
return View();
}
}
Поэтому, когда я сохраняю данные, клиент не связан с проектом. просто создавая новый пустой клиент.
Что происходит в 'projectRepository.Save'? –
EF уже отвлечен слишком много. Вам не нужен репозиторий шаблон поверх него –
Project.Save: общественного аннулируются Сохранить (Проект) { попробовать { _dao = новый контекст приложения(); _dao.Project.Add (проект); _dao.SaveChanges(); } catch (исключение ex) { throw new Exception (ex.Message); } } – jocieldo