0
タイトルには更新が成功したようですが、ユーザーロールなどの関係は保存されません。それは素晴らしい(私の場合は)役割とすべてのユーザーを追加するが、更新は動作しません、それは他のすべての他の関係を取得します。私は他のオブジェクトでもこの問題を抱えています。更新時に変更された場合、関係を保存しない理由は誰にも分かりますか?私もコードをいくつか掲載しましたが、ここではそれほど重要ではないと感じています。私は単純なものを欠いていると思う。この場合EF4コードファーストを使用してモデルを更新するときのリレーションは保存されません
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
、私の代わりにviewmodel.user
の直接user
にLanguagecultures
を追加することになった:
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);
}