就像标题说的我做了一个成功的更新,但它不会保存像用户角色或其他什么的关系。当我添加具有角色和所有角色的用户(在我的情况下)时效果很好,但更新不起作用,这只是与其他一切都得到更新的关系。我对其他对象也有这个问题。有谁知道为什么如果它在更新时更改它不会保存关系?我也发布了一些代码,但我觉得这在这里并不重要。我想我只是缺少一些简单的东西。
if (ModelState.IsValid)
{
//hämta användaren och redigera parametrar
var user = _userService.GetById(viewModel.User.Id);
viewModel.User.Roles = user.Roles;
//kolla språken
if (viewModel.CultureSelected != null)
{
foreach (var item in viewModel.CultureSelected)
{
viewModel.User.LanguageCultures.Add(_languageCultureService.GetById(item));
}
}
//updatera och spara
TryUpdateModel(user, "User");
_userService.Save();
ViewData[Message] = "";
return RedirectToAction("Lista");
}
编辑
在这种情况下,我最终将 直接添加Languagecultures
到user
而不是viewmodel.user
:
public ActionResult Redigera(AdminUserAddViewModel viewModel)
{
//kolla om state är valid
if (ModelState.IsValid)
{
//hämta användaren och redigera parametrar
var user = _userService.GetById(viewModel.User.Id);
//kolla språken
if (viewModel.CultureSelected != null)
{
foreach (var item in viewModel.CultureSelected)
{
user.LanguageCultures.Add(_languageCultureService.GetById(item));
}
}
//updatera och spara
TryUpdateModel(user, "User");
_userService.Save();
ViewData[Message] = "";
return RedirectToAction("Lista");
}
viewModel.CultureSelectList = CutlureSelectList(_languageCultureService.GetAll());
return View(viewModel);
}