Comme le titre l'indique, j'effectue une mise à jour réussie, mais il n'enregistre pas les relations comme user-role ou autre. Cela fonctionne très bien quand j'ajoute l'utilisateur (dans mon cas) avec des rôles et tout, mais la mise à jour ne fonctionne pas, c'est seulement avec la relation que tout le reste est mis à jour. J'ai aussi ce problème avec d'autres objets. Quelqu'un a-t-il une idée de la raison pour laquelle il ne sauvera pas la relation si elle est modifiée à la mise à jour? J'ai aussi posté du code, mais j'ai l'impression que ce n'est pas si important ici. Je pense que je manque juste quelque chose de simple.Les relations ne sont pas sauvegardées lors de la mise à jour du modèle en utilisant le code EF4 en premier
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");
}
EDIT
Dans ce cas, j'ai fini par ajouter le Languagecultures
au user
directement au lieu du 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);
}